From b6865be910558d4aabb3b494406dda961408f8c0 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Tue, 17 Jan 2023 14:29:12 +0000 Subject: [PATCH 01/13] Re-enable debug --- daemon.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/daemon.py b/daemon.py index b72fa6984..e08a9e535 100644 --- a/daemon.py +++ b/daemon.py @@ -15768,11 +15768,11 @@ class PubServer(BaseHTTPRequestHandler): # for news instances if not logged in then show the # front page divert_path = '/users/news' - # if debug: - print('DEBUG: divert_to_login_screen=' + - str(divert_to_login_screen)) - print('DEBUG: authorized=' + str(authorized)) - print('DEBUG: path=' + path) + if debug: + print('DEBUG: divert_to_login_screen=' + + str(divert_to_login_screen)) + print('DEBUG: authorized=' + str(authorized)) + print('DEBUG: path=' + path) if calling_domain.endswith('.onion') and onion_domain: self._redirect_headers('http://' + onion_domain + divert_path, From 0a368beacbbd476328d4a67ff753d78158c9f41b Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Tue, 17 Jan 2023 14:31:59 +0000 Subject: [PATCH 02/13] Show all blocked events --- scripts/blocked | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/blocked b/scripts/blocked index 31cdfcde0..662f7fdef 100755 --- a/scripts/blocked +++ b/scripts/blocked @@ -1,5 +1,5 @@ #!/bin/bash -journalctl -u epicyon | grep 'get_json Forbidden ' > .blocked_events.txt +journalctl -u epicyon | grep -i 'get_json forbidden \|blocked' > .blocked_events.txt if [ ! -f .blocked_events.txt ]; then echo 'No blocking events' else From 398a97fcec6a830d9174e302965ea3a3c3e4787a Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Tue, 17 Jan 2023 18:49:02 +0000 Subject: [PATCH 03/13] Remove unicode icon --- webapp_create_post.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp_create_post.py b/webapp_create_post.py index bcb559003..6eb814714 100644 --- a/webapp_create_post.py +++ b/webapp_create_post.py @@ -775,7 +775,7 @@ def html_new_post(edit_post_params: {}, ' \n' replies_section += languages_dropdown - buy_link_str = '🛒 ' + translate['Buy link'] + buy_link_str = translate['Buy link'] replies_section += edit_text_field(buy_link_str, 'buyUrl', default_buy_site, 'https://...') replies_section += '\n' From 9320f5bb76204fc8eaa1a11dc08c7aef033f3a5b Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 18 Jan 2023 10:06:24 +0000 Subject: [PATCH 04/13] Unquote url --- daemon.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/daemon.py b/daemon.py index e08a9e535..0207a110e 100644 --- a/daemon.py +++ b/daemon.py @@ -18715,7 +18715,8 @@ class PubServer(BaseHTTPRequestHandler): hashtag_url = self.path.split('?remotetag=')[1] if ';' in hashtag_url: hashtag_url = hashtag_url.split(';')[0] - hashtag_url = hashtag_url.replace('--', '/') + hashtag_url = \ + urllib.parse.unquote_plus(hashtag_url.replace('--', '/')) page_number = 1 if ';page=' in self.path: From 413b60c9e37773e8d4ebf978696bef821719e1af Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 18 Jan 2023 10:18:48 +0000 Subject: [PATCH 05/13] Error handler for ascii encoding --- daemon.py | 4 ++-- httpsig.py | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/daemon.py b/daemon.py index 0207a110e..08d61159e 100644 --- a/daemon.py +++ b/daemon.py @@ -18715,8 +18715,8 @@ class PubServer(BaseHTTPRequestHandler): hashtag_url = self.path.split('?remotetag=')[1] if ';' in hashtag_url: hashtag_url = hashtag_url.split(';')[0] - hashtag_url = \ - urllib.parse.unquote_plus(hashtag_url.replace('--', '/')) + hashtag_url = hashtag_url.replace('--', '/') + hashtag_url = urllib.parse.unquote_plus(hashtag_url) page_number = 1 if ';page=' in self.path: diff --git a/httpsig.py b/httpsig.py index 8b6b7083b..5ddac2122 100644 --- a/httpsig.py +++ b/httpsig.py @@ -117,7 +117,13 @@ def sign_post_headers(date_str: str, private_key_pem: str, # strip the trailing linefeed signed_header_text = signed_header_text.rstrip('\n') # signed_header_text.encode('ascii') matches - header_digest = get_sha_256(signed_header_text.encode('ascii')) + try: + sig_header_encoded = signed_header_text.encode('ascii') + except UnicodeEncodeError: + sig_header_encoded = signed_header_text + print('WARN: sign_post_headers unable to ascii encode ' + + signed_header_text) + header_digest = get_sha_256(sig_header_encoded) # print('header_digest2: ' + str(header_digest)) # Sign the digest From 1749cbe1a9628dc26b9e9cfb30c7c0ea0b7b0de9 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 18 Jan 2023 10:20:36 +0000 Subject: [PATCH 06/13] Unquote the hashtag --- daemon.py | 1 - webapp_search.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/daemon.py b/daemon.py index 08d61159e..e08a9e535 100644 --- a/daemon.py +++ b/daemon.py @@ -18716,7 +18716,6 @@ class PubServer(BaseHTTPRequestHandler): if ';' in hashtag_url: hashtag_url = hashtag_url.split(';')[0] hashtag_url = hashtag_url.replace('--', '/') - hashtag_url = urllib.parse.unquote_plus(hashtag_url) page_number = 1 if ';page=' in self.path: diff --git a/webapp_search.py b/webapp_search.py index b9204371d..cd3abfcd7 100644 --- a/webapp_search.py +++ b/webapp_search.py @@ -1082,7 +1082,7 @@ def html_hashtag_search_remote(nickname: str, domain: str, port: int, debug: bool, buy_sites: {}) -> str: """Show a page containing search results for a remote hashtag """ - hashtag = hashtag_url.split('/')[-1] + hashtag = urllib.parse.unquote(hashtag_url.split('/')[-1]) profile_str = 'https://www.w3.org/ns/activitystreams' as_header = { From 425e3f506491422659a5feaf137459c9cbf4ca28 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 18 Jan 2023 11:50:49 +0000 Subject: [PATCH 07/13] Another date format --- newswire.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/newswire.py b/newswire.py index d80e7546b..46df4c034 100644 --- a/newswire.py +++ b/newswire.py @@ -302,6 +302,9 @@ def parse_feed_date(pub_date: str, unique_string_identifier: str) -> str: ':' + str(rand_min).zfill(2) + ':' + str(rand_sec).zfill(2) pub_date = pub_date.replace(':00:00', replace_time_str) + if pub_date.endswith('+:'): + pub_date = pub_date.replace('+:', ' Z') + formats = ("%a, %d %b %Y %H:%M:%S %z", "%a, %d %b %Y %H:%M:%S Z", "%a, %d %b %Y %H:%M:%S GMT", From adb23038523e6d7593d088a6fe1b8496841ea118 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 18 Jan 2023 11:59:01 +0000 Subject: [PATCH 08/13] No space --- newswire.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/newswire.py b/newswire.py index 46df4c034..807ab6572 100644 --- a/newswire.py +++ b/newswire.py @@ -303,7 +303,7 @@ def parse_feed_date(pub_date: str, unique_string_identifier: str) -> str: pub_date = pub_date.replace(':00:00', replace_time_str) if pub_date.endswith('+:'): - pub_date = pub_date.replace('+:', ' Z') + pub_date = pub_date.replace('+:', 'Z') formats = ("%a, %d %b %Y %H:%M:%S %z", "%a, %d %b %Y %H:%M:%S Z", From 7588fc82a446ecf8008195b9201a8a6ff9117ef7 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 18 Jan 2023 12:03:23 +0000 Subject: [PATCH 09/13] Show original date --- newswire.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/newswire.py b/newswire.py index 807ab6572..fb0ee6e53 100644 --- a/newswire.py +++ b/newswire.py @@ -302,6 +302,7 @@ def parse_feed_date(pub_date: str, unique_string_identifier: str) -> str: ':' + str(rand_min).zfill(2) + ':' + str(rand_sec).zfill(2) pub_date = pub_date.replace(':00:00', replace_time_str) + orig_pub_date = pub_date if pub_date.endswith('+:'): pub_date = pub_date.replace('+:', 'Z') @@ -370,7 +371,7 @@ def parse_feed_date(pub_date: str, unique_string_identifier: str) -> str: if not pub_date_str.endswith('+00:00'): pub_date_str += '+00:00' else: - print('WARN: unrecognized date format: ' + pub_date) + print('WARN: unrecognized date format: ' + orig_pub_date) return pub_date_str From 6563caf5398f534bb216b50aa667bddbe397a131 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 18 Jan 2023 13:05:29 +0000 Subject: [PATCH 10/13] Simplify --- newswire.py | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/newswire.py b/newswire.py index fb0ee6e53..9ed6c9c22 100644 --- a/newswire.py +++ b/newswire.py @@ -302,10 +302,6 @@ def parse_feed_date(pub_date: str, unique_string_identifier: str) -> str: ':' + str(rand_min).zfill(2) + ':' + str(rand_sec).zfill(2) pub_date = pub_date.replace(':00:00', replace_time_str) - orig_pub_date = pub_date - if pub_date.endswith('+:'): - pub_date = pub_date.replace('+:', 'Z') - formats = ("%a, %d %b %Y %H:%M:%S %z", "%a, %d %b %Y %H:%M:%S Z", "%a, %d %b %Y %H:%M:%S GMT", @@ -341,16 +337,17 @@ def parse_feed_date(pub_date: str, unique_string_identifier: str) -> str: continue # remove any fraction of a second - if '.' in pub_date: - ending = pub_date.split('.')[1] + pub_date2 = pub_date + if '.' in pub_date2: + ending = pub_date2.split('.')[1] timezone_str = '' - for ending_char in ending: - if not ending_char.isdigit(): - timezone_str += ending_char - if timezone_str: - pub_date = pub_date.split('.')[0] + timezone_str + if '+' in ending: + timezone_str = '+' + ending.split('+')[1] + elif '-' in ending: + timezone_str = '-' + ending.split('-')[1] + pub_date2 = pub_date2.split('.')[0] + timezone_str try: - published_date = datetime.strptime(pub_date, date_format) + published_date = datetime.strptime(pub_date2, date_format) except BaseException: continue @@ -371,7 +368,7 @@ def parse_feed_date(pub_date: str, unique_string_identifier: str) -> str: if not pub_date_str.endswith('+00:00'): pub_date_str += '+00:00' else: - print('WARN: unrecognized date format: ' + orig_pub_date) + print('WARN: unrecognized date format: ' + pub_date) return pub_date_str From 154a9e9ef34bbc238acebab7da2cbc2e710af076 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 18 Jan 2023 13:35:18 +0000 Subject: [PATCH 11/13] debug --- webapp_conversation.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/webapp_conversation.py b/webapp_conversation.py index c15f26c64..7b1b6de21 100644 --- a/webapp_conversation.py +++ b/webapp_conversation.py @@ -63,7 +63,7 @@ def html_conversation_view(post_id: str, html_header_with_external_style(css_filename, instance_title, None) separator_str = html_post_separator(base_dir, None) - text_mode_separator = '

' + text_mode_separator = '

\n' minimize_all_images = False if nickname in min_images_for_accounts: @@ -101,6 +101,7 @@ def html_conversation_view(post_id: str, if post_str: # check for "HTTP/1.1 303 See Other Server" if 'X-AP-Instance-ID' not in post_str: + print('DEBUG: post_str = ' + post_str) conv_str += text_mode_separator + separator_str + post_str conv_str += text_mode_separator + html_footer() From 743ecb94ca82ac8f8d8bbf0b2553a987517dda87 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 18 Jan 2023 13:45:24 +0000 Subject: [PATCH 12/13] Bold font --- fonts/Atkinson-Hyperlegible-Bold.woff2 | Bin 0 -> 16484 bytes fonts/AtkinsonHyperlegible-Bold.ttf | Bin 54444 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 fonts/Atkinson-Hyperlegible-Bold.woff2 delete mode 100644 fonts/AtkinsonHyperlegible-Bold.ttf diff --git a/fonts/Atkinson-Hyperlegible-Bold.woff2 b/fonts/Atkinson-Hyperlegible-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..19a58eace2f37f645b2e724046288a979efafd84 GIT binary patch literal 16484 zcmV)AK*YayPew8T0RR9106=5_4FCWD0E^5306+`?0RV#l00000000000000000000 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 Pu=ItIEk0+i5)^>$96Wdk&OTW0wgR6 zP?it^FXcg7;FSWE!_t&BWncPQ0xg9!B+#Zn0!e6CN-2@P|CuY<%J$y(-uL^goSC^Z zb7#(+IdjgL?S^s2m;sK8rF68lk1xtCOk_-UA@;kDDU+ucZ{I$^SowF1S(7@Z&kQ_! z^lwivmRx`r4o;q4QGLzpmc5Me`;fnXaQVQhs?TyyF{V|aj9UiRueGGlPRM3VLNZ&n zaMhya3(CV+FlPCJu_XPXfi+f`7h; z^u9@$$7BPUN{RWh@Q#sh?i9a&X}KhabEdxD}wzkCqQ?SS9^7 znaamAv#c0cK77ff+y2Q|{C4EIW!1_xYe(!4p>0`vfpf{K)x)dij2vpfyUUROImQ_e zhgmXw##gdlre)JWCyAA?*$lO?ok@B;As1TvROldZxH9~7Xjr|FVq*XJ3K7Hkjel(U z+m!jqjo+|j`7_FKVEOO8!VmuK_VCkTwR)j^FY;;>k|9MU)kx1WHE`N0J%i_)6rUer zRa}sj-lo4zjGbW2(kUL`^i1w)XZNwh!Z#J%OW*QP`0MZttL(DNQ0QzBSfpLwL1qMp`mVqE3FVQ_}Xi3Ixl zRkdW(q^aekl07`UC8)Z2L}G1^tA{kKt&Ir8(JRv;lu8m$j5Xp}k8nEg;@!N5Pv%qj zG(LmRP>#+%^!c_-X1 zK84A^Zw}lGc|Y6%K7e@OhVU@Pnar2)C5X9*FM~_C634WT{%&PYvaivyoA@EgFAYii zmRQtJFVMKchaPF=+ZU+cjTk%d|IZAJcxUQ|Uaqe%PIyMI)nA~$UjJBPa^kGSor$5OZArgPE=ayG`LX1EDLloM zGCyT&$`dIE4F*Gl;abDHhEQs8>b%sSrvA<7Gxi(rGQOCWY*L$wO%qK+rk70Lre~%< zkp4Ute0^T;EwgyM9Ui<@Gn$|9kx}>VH-LQvL7i zKdwJk|4qZrhKC!TZFs%m4-FqRoNNd+#y6%n+8WCn>l=p}w>3WB_}j*B$K{Q4joUfy z#c`iCr8P}&8femS-!qO|bRbh6~?>Hev!7D`Y@D#{C6s zfL#t;?q?6Pr`QWTo~QFXZsSF~gqH)C8s5NLAdz|@gO>6Yd;@UFlwOtImk!8G*2wX4 z(I_rPOQt2qViCC1orQ}5xMYpuGDNt9zX|`9%?|$&TH$vrBm6qkhlj#P@$?9=WZ|zM z*Ps%^pN9ViZ1ohU{DnutzeGB8+Nmo}Esw_H$@s&+et6)ABOl%UQPoG4A60zh`pEu~ z`J>d2KKtmGhjtyh>Chzye|GThgEt@CcJPLSTMjNiIQ3xtLErv&MUN@PTr*Z0LiDtQ z7f~GdkgNQ07q5mqoCH~jKgdGHheT*0r1L7imTyq<{jc0r>|%BiTgH~N6>KH!gkILi zmx609U~}1pY#y7>`cd0+sEEv@3QyV2W&t4 zGq~YX_8B|Ej zj$OuIkAxFgfL|90>sdLEmY>LNtR@nlgb-tk*;@Qou{9Wl75J@TgKRZhf|#`kmjjl7 z2g<<#tJxx?PiEs;7n_0imLSc7r1^N zxud;s32?dusR7VP!Im(cC}_A=V7m?&4J1VWL+z@-9M2M5}hZ zzXqif{i)TIP842&exV)>2#hE%rBF`~BW4Jo^y(BmuSIwza$m$QJp)I}Ik0R&{)7tyyU`)lBb4Yw7_v_JCduXO;Bdw}7Zf<^A8|(26%!fig7u77329uxj8! zK={RS!nvqy!TSr5vjzM_w53ruAo`H_W)STnyB||VHVN`tZX4eS~jqD z1uTVh#=9qXS&)N4KXc3wRme|a%wq8@L2{^JMQHIHH!!elEn7M`um*fQIJkTjo4auJ zz#yB2x$81EW##Ij6>QR~73-F>wl(Wktzk`TDO@YcNfIteL=GE(+yvn&wV-y?B+*O} zDWrMHrr|6_-Xu@p2lx*Bx*)fUxC(k;H(QEctz@tikcaZ=09UfFW1ci&Wp?{dG0%+V zl2{VjHybn~pw=d1p5nx8L?h}f039HqnFo+6N>=7a5_0)O3e9a!Pf5o6G>=xJY|MB^ z@o^zG9pzCiOY!b?EDkYAsA-9K(xShWSfa8Q%T&xR(=fYC$NVx=%rDJiewoMenT1)I4YSMwR>+Dl({#Wd`5Ai%8vk)v8c&Z} zDP*y{cn(V?)=n9-QNCi|K;;J(nR!9=V%L~+(RwapO-qKN5JJ0T3(Kv#981IVPhz1 zE<7u}MI|Miqa>m-t?yJR{VO<(_`d|y$^#{dYc=3X8f~Y*X%g(aAK=bo|AITrzDIhL z_j>ToKUs){Q6R^dijJXC*#N#ufSsJkk|I2MZmw7cPUI*{J(hoT4E_@}{tFnK8mlM5 zt?T3TYB-r3;x=TFo+~A?B1eFt?P?lBJ7TkyHiP z&D7FW%q88=?9yZK+W;28@A3Q)bMZG>om7cDcOWi{x#UUkp9TDY^woGygntX3FJf8J z5|n!v!nd+`c@2xldRM&kOTcnwk(?}3ngKj@!q1dySSDYIa%bYXkyY~sJj>yyB_G1| ztXf`=yoi^^Mc(T}`dU1vGZVj@B}&L6LE1>~0!#o%FGDlpg|}zeCz2qy@kW)Yt#QyNgiw8icz6 z#4~2(K_96KnO*)l;)rL@2gGOR1LASwKjQIN051|hMuB)f0yg27VRf*K`Zjz3@ck(N z(-?>a;{8}4-jDJywJjEie`A68mw?6*czkr+fTv|O_c;(d})kRPJV zGx3hfCzLG&<=IZ!*->Z5fF5edRo|H@#2?W(X)>(WGya6!ng=?gJp`l4WaZ&6yc_cB z9Dk6Jj7uDgJzRB88(>W9J6Q=Uh2>iYZAoj)RlvdxJI;&wgOAms{Ce2*jaYGRgLOZi zbwIaHgjL*$c~CbatA7e+fYUICn!#qWS<2eS=*q|Y>|?A-kgf0$)+T<1^@}I4Zt)7% zXkKL3V@=>yu@dqu`!Uwleuj0o{p?zH2gm9JyP0d*4eTX$kn7mJSm*i%R_eDgc1tca zaT9B1e%SB=w2SD-JiZTiJtb7i^y& zVTI;SteV`-PVhJ$&mLg6!-CPXojj47B=Tg zI!(K7#gfX(mP*ABR7ZTb@ZEvd$a5X})zwwrh%cTi-7R%-!)w+qSw66Kcu0Ap&LeVE zRk^h-%LfKmuUw%Wi1?QcuU=WccA;kFied8BUP4d0wTo8|)3bKr%5|%Szhu2gU$bNb zrLP%YKfHnh!%G$|UP~EPEKv$*S+E*ungQWyTUIVY!53)hl#j-XR!)qR zv_$daTSqI29~=#8rVk9RTRW^-BRuWQ$h+$lUp;g6k`;^8>&Q)<8CzT8y4WY}%t&49 zB3Sn*rLIuC9;FQ{6mO0ad71Fy=ZvBff7xhIHDSTPYSm&m@g1X)@ry=-qGzkB6`rVa z2b5=bt7e8$#WKa~QoOaoQ}TEOzf@LvYBbXnJTPe|0!&l#u2#G@P;g+arcHSoiYdTd z6RFG>K|*2B>Z)4hxhDGD5+@2CT)BKf(rBoh)(b>NcV&&9I30d$WNU&F*;dvNn=f8Xn2^b*0Y}w`ldi`eA|UXejp8 zK;+dxY@{a==^2Zx3@GGvS4S|YJ`IDG$QvzVZ&X()1GloJEkZw~Q>&{2ach?>8&Z%O z4T%>SgtE&LWHWo)`z#i0MJG+|3~Hv&=?!|!K}TQzLd({fy+NsPK-ricv@bAQtwGio zWUcnL-I#H;_6N#>+!eI+FDwg6F1yukEepyn%h2O;nu!HkgT_`%e}7;^N^1>_6w0kZ zsddH%OHgk|pmkskA-f;xKuJ%CsG%Yqs~ZcxH9G@@M)uuvj3 z*Q}sVZcy%T9}KEXtVnFNY_)7fT_ct1LQrUGZ~qkYz_h+zd!Mz>67)~+MVguD5<#Ub zsC5P7T1$6h(k`g3!=pW52fNq<13_uQ!XO_6B0+6QSuoCJA#9V-EEQXTEWp>_-$z;c z+XS}puHA7-thGH*VjX3i1lQ?|q*qGer9hz-P4Bm~Z?z9lrwU>-Gj&MNVg`~?EYY?0 zfi|Uz#Phr!EWlfMd9-PY3b*E;8G#eI;PxWY>r!wFid=+RB0{E;PYn z2`0BrqLv|m9tx(=(=oilnzR6}ij z1;NB&`-ZZh(bYM%w{yA@X|^KXDB{yxBP_LbX75O9YHN@W1cHWA8ggK*z(_JVDR6>3 z9ep7ePQl?3bP&iD*oq!TwJ9Z5J6?;1!4H&9uV5roY9CtC0sK1NrqMEl4uLi@-sM*GNjpnc>!(LVA^&_43ZU6w{M zkSbi3{$OUm1wxPa6Hg4l50(?pR=R=}rNIh}$0`hk4sh%_2c&(V)=q-`zsv!4EDKgg zyLco?(@q>0tST8%b5naSgd+8#JBB>x%j0obyaIDCN>j>dKU+*d`kWJ6if8Fhh-q9~ zlf8Dt!%fuI8qfm`IOjY47%T&|WkH{-JfpEJSo_~)1!E5)dmXxnr59StEgd8hK-!60 zw|3Y&AcA_K_#kzmk!o>}C=C>@hwMrZW+0mi;`s$+_s#SI?X)gwA8?9snK_1 z%RBRpR#&jTG&V!@rD%n1u3$syR&?}qGCJ9 zZ5aFpr z%yvBvY1oQTFGA4m2=%!h$2tOq<{+fRT|oIb#m%LBB6K0;6QOyOPlV=Eo$bihPjymY zfa;{c0;-b&gOq0i0z;IC0>hMt0t+b*1r`as+7MbS@S@NXfft3A3cM(Ek-&>W%LHB& zS}yRS&Lubyys<$E(i@j5LCSs^${D8=dASm#3>%doWw-))n?}pKQap+Bu2O=OeUlQT z>{sK>CZ)VFCFx&Eh)fcgx58UnATeLT5uhDKqc)fNN+@;zf z?L2L-b{fK6+VODx+Ip==Tds8=Y}4kzP1mNtji>t(nvmu@xF;!I^M&RU%}1L3nm-`? zJI(8GU(`H{oJ%!NX@Z)EH9r&a_rl#tZPDB=+?#}Zop3h^_cGzG748bcN3&SC3xqpY zxU+;iMYxm5)de(dsH<1ggz{^NGMZ}Px`bOKTnn{DlP%md;U)=JM|9IjPN(Y&gy`= z5pIp3q@bI^MM^KLD~TrR5hYlv4>8%21%;M;N)-qQX>wUqc)HH6f8g8u~% zD?C(XlKDW3g6nu=G6_^SlAU80;W z(ouYkh$$BCl_LI1(uDjJv2FBuelIw@=Q&TYaLIKGC{9Q5Uor;)Pv-^V#54N!SrQSG47XaGw{wBhLSE zJ%!mO5&xmcucEf|e2T$-A8~t?aOwUS=g)}z4~hI&<2Dx;x9{KzeDXw|JP|Gx-0KwY zo)Tr6MQVid0w`cx$-`i<6N&QG}aC{3H>kdvP46=gIw4#LN(> zGemfv2(PBF1gV13Y{IP&sk246TZD&2cv$3woJ7t(#YK$7OgJ4t=L5!WbE(8>JFPfv z7su!}R|3x1IgyKQbES%%b`$p5eK?s%x4Ci{?P6PS>h3$7&ZOI1^RbU>Wvj4bTgtA$ z{%jMwj?-99~m%nlI~ z6ybYC_zn@?Cc+&e+#$jbiSR=ryhW4%yAtKRBH~{W@wbZbts*>Lgxe6t$xrM#PeEq7 z*QUmvaz9ScE#QMJRorMxqg`a2uE31}Ch4ldJ(8S)Qvyt*Q_&ed=#nrrhVmEwdo)CT z__Z)m=^TIIuPHM8eE13Bp9mj2N2b%F!iU5AqY=^E;r-!#N;v#yq#481Z{jcfei;3R z^3PL$B-hj74C!1NNf*O0Mu(I7HtL zpO-%2BhftP_9N8!7PuZ0xEjvP7o{cQGtW%JTM?Y1{#XvsXB6M?!=MEEI{ccTNrdL% z=P=J8$;Ob5mLh$B_`~qago}v%g_0`5MC;TTT<9(23V%tdv43N=#>So_>=}!ro;-_E zdZfdqQ~tm|dU}dtpzvDwzVJ_@InL#yRYU`fU&tfnlyC-QNG{|Lod~A0z$B&UY(Jd> zs*9ZeX%aGuPX5rjpJ_O$vxV(oL7eA#itYrRabox-ob`#`RC)ta=&jMaPSHC{(K}CL z_npSh5q}zUZ|NjX{?Mu7e~5F%%H1Wpr-TzabUFtojFTcKjFtOL**NcF;Wpe_8awAg zCt7^sGz*S{ zl+Ld^nJj2U_j4=I7ghLaK(iW19Up!i)T@KrfS(qps2ZUM#^I;N*`+4Pq!#?*A^8J1 zO}raF4r)G$GM~bagQ`!X-e>Tmd%iD1dcB0xsWPbfCgR`1kF&RNUI>;hPFZPi%Iagp ze}Z2UP6T}l96rM-Ar4x8i5maTPNJ@_@za8y-yqMo_$7m`|6p;@IWkVhC=!`o8pfuSQdYpxV6@}AJ%Iby&r;XAehfO%gDd9F*I^r{U2Ev&<6X9&0&9pdy zlmq#khx6)c^os?qjoaWB@B*eo9~HrMa0hTG;U#d(co|A4=jAx%UBN35#W*2qVHvl2@BGx?^7@~?4TfVfFZ&GrRe=QjFmD_xg0-} z=Y@7^c_Z8=*h{kD4->2=Kf=T%X}DF; z4(=f?iHqTqlofwX~lBA?itB?Y`!AHg5A1$a7hjAcb zM3}%sq&1Q-PV(_=#RxI60_4lUn5e`T4yqvqt*~wzSrKGi3uNV0_?6)V=4OnP>+q`( zoLvb!^ijx7;%~RmCLVD18+iLIaP4?Vwm;)^Dap1O;Mq@EA0*i~>;l1;{ouzQQC8X;rWLVkGJI>9TK2>G!AT++fW1vhlU!X^oEt&k9#(LS=w zy+Z02LRVJf94y^!N`re{cmudY6W+(P;g3O$eB6J21Mzx<5+PO6STVHmv+$n-JP&vQ zuov(fz>9!Skp4~h802jl{Afjwq@^@1vX#0Q&)d4*w0>CmmWRou?w41{gqm3$V*!2DID+$OYsB zN^uL_1t z1@!zJ^gIrF9%ti_rwMT_fZce068=;0pGN#M@L$67%Yat^uL52JybgE+@Fw!Sg*hLsj{{Bsz6AUob({p9 zQ~(V?7d{S}9|z5kgXYIU^Up!^&q4FUp!spo{4i*KoaeyL16TkyKpCJM?^nRDgkJ?{ zM!pt68{*ml;}ISJu01Rnl#g;_Ca{Qdqz&9ev?lw|iTG03?k+$X040N>M?lddpyClw z@i3@(B*LLb*t00}Il%LP7XW(!zX7}mcnNu52D}1z74RD1b-)_{g?o>H!bd>iBcSjR zQ259>xs|NK&yaQma1`)4;0pjOLENF*2Pz)sYWN!Xy6_QD@(3t-1e81y;o2h+u00~S zwjBA0b1UIj0U)VBwIiU~kr)m>f;$;Gkgz$B*vXh%MfooiJR9Xf8{`U6j<~rP;6z#} zTJ8dr0V)7q^mPruhj1OB0pT6tpMaYCK+XN2=Dr9|?gKTS12yrL1;7h{y@1~UUIe^^ zye|V@0lW%$4e&bP4S>S0`#{ZopeDYo0C*R0F8=%kczy~TK12Euz)`^GfG+@FBmNs^ z1XZ5{RriCc&w;A@LDhYr>ON3)AE>%7!k7CZe7TQjgPM@=9OF2`llvk(xepZH2MQPQ zI;1rt+yWTm&3$|V;wK@!6R-sJ$6@U6guQA2Ws8KyAZ_8r%0ewN^fN0r(Q| zchq?@{5$Z>A@Iy0@XR6b%pu6M*CEqh2k-2IOgjYL*$0_+2r})DkZFH}O#35b+8@C` z#5?=ID~G@%E90NATfXy*ra}3y=1U4su%}HQ$64;ysHYb72 zNoeT97$b*)6=|oFz=|}~NpPlJ)c+7Tb0717R?Xo*fHUa}L~)SCdX$?8UjqyCuy}&> zWz%6@&BgOZ`1qQDSoJADzJ0KZ^RYsk&o;vbeFX3*04t+-M~jj;OM?A`l2LvV=rkAW zb{y}22X_j%rAfPKc9F)$5;PadiGQs zF7tR#T`yf2dMETQCi<>Z+t5)cq72`UTZ&zYMDQib6I8s zD$Zbl_GF~vG(lcQURo-)?J?EV=+aBowxS}hr^a2KZc5W=j5S_Qk=>>>R{La)#*~)M zJ1^YSa{Em;-`=t*Pt(y*X6dfZe@msBpr5&G>HT~5+`n|!OfD5yUAEF1nq0&SOcgno zUJN=_fIjoE>Kw=HehZ#K2Heb&BwM!%2-)QxF(-;M8VqV(7KmW?R@c<{+=kb7ddF9! zuHkzxPjHr<8p4}45Ymn|X0j@OxjsR{E%GjoZ62{lp|la@%AjtvTzrEsy|7r6>ur)m zdo2ADhX~EdH}Ztr6o+IQV%e-+Ch7YY(S$Bo3s4f43i-x zIVnzy`{8BU2(gQO>FMrjqH__oI*MPD2tVO!xV?5!k7;Y-cxOeeXJ+-R3!9yV zP4PFT^(^$2_jZ)l+pQIulQ!rrt={S?N4e8kW>{M3DlRT4uXg+M(n?#(YNn>?Jx%%J zFDM6ZXMl=R&>!@5u4;cpA_#~ck)$p)8iJ2INa!8x<8*7dN@Z7}ck~I!8*ebA8nn9X zQmfbMh%Sc&_*$YJseIPrZ!&R7 zosz7QRU8#z&`4Y@h$YX*c(9#8tgMVQW2zyE4wU5c{0OneXa$}uHd;+q?Px!0c=7D( zEt`{?3%zX}6_X0CFX1nQUP#X9v^QSV+IhLYds1apVN-omeM>c;webo=s%KG8*J5m% zVV(*s1L#%y7DtD_O%G}$q9cu5EsI`Nt7P>OP$x2mv>?i8x8~voVg5HFy!h86g&YR;75 zFkkec4078g8ex!!27^kMS?cEKK@)BlCWjv7Ux&g{{uNi8`WXCM1WI&*64}uA)vVng zNYhGch%YV2*HKgwr~t{Oj51v;6&%GmW@s%}akZn`W-%A#6eTAzEL_HoQliEuf+2bLaj!l1@^^C&!(k6oa@a_XkOgp zU)B;>(PBuo^f*1PM$Y}t3SUe0kVkG=+7ejiZ&@D5uP!p8d99wIXW>8=UkW;pK{cYpftLT_F}8n=Pp*C zdhFCAjxcjfe|VO(>(tOCm;56{I>Cjqm!RwvtR>i3oxdgyqYkAj{Rw>}ISI$dQE zicyWlS%xWv1Spon)nmLxTooB*q@;k5FGHi@7cbs1W%|xV^KUM?DZR^C-sKwTD4LqF z&2fi*#;&DH|83@s4!6_p9%x&#(o*W~m=2l{wYGs;dQhv_Ul2nbjDFJC3U#tFz}|Y6 zU{wpsD3Ur!vKPCnNyC&&cDw7qw40YSG%UG!T2o8u-vumWoWCUbJJvI5^o&||%mtIxL~___ za!FEX*9RZ)A!*mPwcD=W7A-j*CC4$Rzv%3e)lu<|3~^MZ2Ett_6XhCQ{9tG=_lNe1 z5<|zSMCz?ypto%7y3U|!O0PcwN?0vfIg_O>^XQWXPkl;;eDF5}sEYJ`WT=TQ)o3MQ zg_!;JbL7xy?A;=pR#BgQeiLVw{Jh*8bA$!3|1lDwd4Eq~n`;O6EKc|9Xa0EU(tBo%Z>!BNs+`}kClu$k)S&Evgu=WgUb+qf|_cO$S;qfb;QF@-t& zg*1A^07sF;LkpnK$=Ks8QICO>!c$ZjI2pF0VqYG#Q;pZ)Hl%67OE#Kr(`1$AS9|Z> zqF*@Eo8z@LPvN^lLs$GLLWdg#&P9HEe4GXxD(o&I1S*Uw7!V>gHDbcK4MsPHi>x)d z?*033Lf>)IuU>AGc7^`I<3fK4UBgp4Uy0>VHOu$Yj;ugh>K{{DYNn1TEg%XmznA+V z-%e~(u#)qDm7d0Gf)1wcC{j?_Kub}3dZtf>;iB-i+i0ZDk?pd!sG^!3|jTRl#UK%x{?d8DF&JC_NxODfMp%4l!;0Ms{2SNoH zc{FZ5z_>|MBK1LHxl7Hz^JPv=)G z+|}E=YvH0@eSNzYRZXkHze;lTvvw_Byla-?UQ^ZI(a~R}xDiP=SI`bS4SokS1zCQJ zpamjQ2bQ2hzYLQQcKRZ#hE$=!s^|fY-EJb$ui#>LaX$OT$&+uKJ-E2A!ESFTTrBM> znAbade!*w_qNF0b9p6SLD!d^lf(o=kCFUm?>8Th;Mwl056OIyvOhh&Sb^zm=(yaMu z#irsSn;P}2i#2v-iV`J=HlwiGSM19;ohs7P%V%9SN|@a2i$bgFN`Ex{YK=Nd9^azI zQ3BNuIfrND-!S`9qch`7DqR68;p;!l?XQgIl4?{lFM^35p%tWEL^EWjr$S@0WJ4yj zCe37`)Y3vxD+D78KSHjYcK?gNda`42ZD(gK=w+KTy{NOv5c=weANZ!+@`_yWcoz6( z1}KJaiulWObI5v@fdaUD03?e{F(UIh%un*OGGH-R^2&&Ij9ARnNyWuv!3c{qsw|-^ zGcxjIQ(BV5>zCh|e``{=FSn+kt!8S?g|*ewhpKCarHFZee zH^oy~o|vC)FOE-1DC?}N>8Z}jYxa0-1*pD2o2tulwt2kMYjNmKu}tTHf?8(v=aJ;( zid8x`KU2(^=)8|)+$VpMI{zdYwrx8_YauRB;3AY@q>)JS5+VZJv0${(Dai?OYJ8!E z8zYStB2CPyBGQd_{rK8@jkP|X&v@@<{f>M1hS23z6CI9;ReVe6hI@9P7Mxs@u0t&v z!V}VGbhwX6BACyqiuo*)6p_F9%g^q<=YhXspqu#Tn4Bu5$YgCP5=kS&bm3i)$0XNa zKSvb?B$5GwQb;6G78Pfg(0p`0oiIMBWRPM9P;&P<{d< zIjqG&gE2&73AN?0QLx&iJfL3Pc%FM)Svhb;)=cVM(ZhqmVeCM`HLyNaT zeq@3dbUcLB4F}t(m=}rmDgz=P~0fR&1gI@It z@%$33jhWl~ZB_Xdx=mT@W-eW=(y4Dw&6z2eHBRn#=nGoP#!V>DdR@7B<<)_C7caL= z3Zyp{TNhWh>9x7VnRIfd8m(>wJyX%{Ym`>U>u7QsX>#NN%n)ra-Xis{R?7ouRB5*| zW#yV^qpfG8g9i3UrpR(dpC1!&&ayL&d1-n2c&!E_40mxN7FV&BERoUK5a}dk;esZ# z1CH65#w|NDXFL3ZwY7t*TrDlGvX&Nok+W6W^`+CH5GWJw5CEnRQj=mTYsAx2D;gm0ninO^@&zotiZ< z>nPO|aHDAk2(k5XMeo9dBt!EdLnCV=X+D3@zaw`N#V4Z>o>xger? zl;dcs18WeHJIZK+1<~TK1iAgrS(!Vv@wcVrPuE2$@4sZ~)HO{`=a-?P!iB!p(t`DY z?ylAeZS9bxVoVi+_HU0!N%$imqox zC&^lCqzg0}*)68Y+%e_y_KBBHn6|D_9lA}`USfAAU0S^EiNA2atF%?$ynfo`wf^qw zF`GA~xaw+nZDkdGdlIu_egRH{rwO|Wvm+QPOK5y56S6|^EhY;Zni{3CG=tGvU@+)( zIncd!uUlY)`4N_1Xqsf0J#Cs}Mr(VCBYW90zH#l;hCud)l-$;}q0NF4UdhJ8;6fLB zwliqJ>?S#zYh)}4sUvHAW)Y)`iNP#~GUhXUsuS1_Gqe}eRT^~|qiP{_V29$%9%f{- zk7iS;3cE#KF+fkt3WJkJm&c-|o|awH)7R(EvRZJZtH|QAx^m2!>0(-pArW12iLRAF z48<5s&;_vev2qbJUJIQwCS+_(@?=-mTc(%PENE)#cUR2LNxSyC4S7|0V(h+U@|2aC z)5@y)97XlZI%lt}DRH)iyc^f@=^3?^6Kfk=0xdL-u?{ZLd{gul9e2VY7B+pvvMVJm z7_lpRQ5_IG&+%L|9D0ZA?Dh8cwlMV< zs?3$Xg*G%WbVD5Inax3I|LSu^h+Qb2@?3caVE2S0_d9U$TVqM6SQ3cNDU ziI?b0SaAIsn7PH^jR;;4aI_u;zKBT#UWvdf&6tv;&rHlb4_-hkI+fFGCiDP1XEzj^ zcUI4g!7+D3QWigX>bu%TQ>3>@!X>a0f3Y&F8|^U83(r5Z^SQ~K)uM+UeB#A@Ph9PR zt+Mmk--ix8;iFY@+6|!_3wpAp&=rcohB+N$cAAJL#9_w+#~^7U>Lx`>Q_ys`+w|VJ z3Hdv7ib_r6>ZO!WrrkudTa+fZK|U3*Sx?2u_@E*0QifbQtxmH6VO|w>>$FgaFroxC z8B;o)Bb9TE#AsrlpEhg?SV4giKf57LmkUAR#^izIs&HdiaEuuZ)mw~)9$!O;A-B&n zf5J|krLer@Zf$-+MJfL>kmD(FI!i{mv!x~UyfYMs9U@zSIaD$f8;1kH=wIX29G^iu7zQO|2q?A^j+Xs1w6jmW!!_tqO@o z_0rjS`uu5WIDW2}FQ_K9$PT5DRhkj)Yq7lr!B}iE#@H^^o719Ziyv0ZqKE>$U%IW$ z>GZFgI(1!BiSsj_FkyUKm%qEK9itukbB6R2w1svL?o~K5H5H~7RtweHu#B-Vu2R7; zrAW-)Vk0BE!v;Md4UnO&=nT>EPFj&=3uyVPjG@g%;0U2H1ToH=5qe>4OM*60Qj#zs z#HK_n8yL)ctEa#|2k+#|3%yp(ThJF_z$s=8}rZ`HPh$Ma| zbU{tNGyYn&o~O5Wb^E*8#!raIfnf>zr>uwiSi<39ng>K^1PL7N`zxZcGT{R zB=q_9NJwHy)yC-R5;#A@6jc-(%o$Va^r;EH2L9y*jg|6FiF+Ep2L>kCmH$HDIGD#@ zg^wIdSy&f>H#&iaX^HU%eH~dNgXNV5df}w(=@V%1c`+9IBgT!g&uA6;T z?$rs+rG<62(!L3Enir4jxHM;z)?=HNW1Tx^R$ztR-&B#GpOKN0u1(fYYVwS?yBjLZ zMn|$yV@PRgs_(%D1(xXG3`)x|%CR~E8%*A!hWwJS@+?WB^I1PJgpi^}LsFu$!whMP zBjjWxT1lE>+0*THi&bGERk;kYI&Ip{Wy{QkE{N7I*KXXn_H`1j)JKp8THFLmWAnt! z;>lEweTObHeC%pQ=MzR~awr7qvIVNqsZ&NI7JGzB(&((ofUi11iwZ#x)Myz?*sqG9 zS2PuwuLlF2`8%D3WzM@do6=kKRr6YTN$B&ovc`6<4yBAQECYu4lahep88h?3ZW=J7 z8(XK%%tuDBru*aF{L9c|d>ZLwrIdG3%Gon>A$$M3nfb zsgRQzlqyzs<1mqcekP5Eu7Fm=5{M9p2xHMHH4WPlkZ@!P)cBMcI`$-5@@zJv?)je% z%>U{0nN?ja_pi`oWbtF6H+fAcrFlH2zmUOC(`p_(!-GN=^JR={>A16pv_z+Wa|j7-?h=(&rd3!Z}@t!=|#) zMr#Tq_>ba@KB0v%vC$UZk)D&39e?|#wl=A0b6P^&=5gahnYAeMZD8sYW#)n76p}E$ zh3t#)$2c_(yVz)BSaceZMd#A?DR9Vt9EUKAt zQ>D6gcZ%7Z;)a$0jimtl1#Y?G2BSg^#4+4|BT6{Lx@&N zs{st3v!!OEztC*6KTAo%VVX13VDexEF;S-_`4;WZ$VAu&f*-3XjUelEA&b`?- zE-xiHN0U(XSgzA(cg7j4si}G$?^J2151f2D`vP`p60`Vo<071c1hFDXhAAq-T?^^} z#pw58dC_E&Ffca7iXXKPlyK0N zEm9JTWb70gl|69LrCMz>N~?D`>NMSa{tY^>%~@CHOf|erC5Bhv#?cE1<9Ut)T!jo3u-K-wSs!- z`ezmDokmH*WIiwj69_T0K>52mY+JVFZ}F(n$A&+pN4 zuEPO0I-#Xf(HS6`D$~KS!tQt;7iW(np2kft+AtP>3A+4Jx3D@!>k!rl>Jc^V+4Ja{ zxm4NQHIGtlUe?R6=0AhnqCLN}<)AX-pke4ceXB?F=km_7vd(hh_Lg;(DUS$X|BB8U zeUF|?!09GC!x;~8Xo3ysR9XoZ5-sOuWztkSKR45!WyfkR{)J17w>goN!>+BLg-c1OFvv!%1nSJ_@2oaSS!p~Y5Au76k`ewZz$7lF>9t!54>Os9ruRzRn~++tCU4Uoz2Wj!?K%yZ;Bva`f4 z3Fe#HxTuDJPKezl(bBw$jDIpTyjr2f@ALQ^Z6$UCMx;DDxx?f4bFP{Z7hkF|=G}LwZ{DH3GB5rI5HEia zZ;Aa#>|9?bWSB5&aF&YWe{&H1s~lS>#92wJfj=4AB(d5PSA}lJXL)dg;A`m!PNUI2 zcn##i5@Ef~tKu3R@6zMUodzOH+Jv%bzZZ*wIQONBTY~*LjasK!lt5;d)CUh!=y+kB zIvggf+Bc7@^Eql9Slo42mpb!vY2Q2{jSh6MIIZrCa zp1v@7wCE$dNh~YUhBd#XF8Hcp*2@m_w%R8MPVdTMH>(OTm2)cU4ZLAFud+xTMC?Vz*KS((^6vSFu&HuBDK zHX4YKO-GxJkRD>kE6tEBj{9QmB_cbbTNuQDU_@oDF>-X9uv6Av-tu*)UVu~F*_nj} z$;mCbhSWSwpP}2^JS{g3`+OaITdBipOv^B&r_LxcrWg#?qGE4VUTJ)Mg|*Oa7ChI4 zLy>=iJ((|fE{&SAh2$koQDMCokhB!chMBc8C4=13dUJd^$=R6}qp{E^HQ8Eisg}&_ zl*Am|e#W}WJglpnz+7m~Q^q6-{f>3765634F_cd0yC$N6Y5+!-Nf>RJYO!{W=kXKLzhU15XV7T6i!WfIxzVFPv`2$|3DkzqIN;AgClxXb zkrS|VM1y`0I$8?dvphVzV*cEp@HY}XT`tcock3yQ^!+I@-}17%@U@9PF!H(Wys`N% z?7UHf>#m4tbr;#ewN3|p`2pV-;})FBw6Kds4;eFvwSYLyA?2=glO#`4=9xKS{<{iO zN@)vTj7+iVun1?<%zm?2R6BQSpC6N)>`cLg7H)~o@iE_wVMLo&gLOckFGEXwASTTB zXO@- zSi{JonG;Hit^zFTz|+PEzSrSWwmBtb;I-k|Tqj%p@7|SCF0~;8PY?i{0K8{0}fX zha%na;?^bYN1?q4#D_x*vBOL>ugpHWacw)B6GcpYaJh$!dC-{-d}G)XK>EG)3&2)yYGdL*8k9!>IDg4u04jWD{bR(}a8 z5w%bv(`HY&_jDRfO)aa&I+qa|#p&|+6pfu8UWLcIL4p9!G*VE}E)|E@!(TQN@{LShA1>xU++`NemB|QcDs!4tD6Y@w&x` zX;naz^?}>RceiD6YM`a)%-sx!QXVQm$9e01hZ{z91O^_aA0w95ftLI zldT)?8oYneVH7;T0RaKUkIZ7R+CC;2|*ushm#pgZ@5ql4dG%?caG&QQsX`@#$ zz~t7`c>A1s)xKujR7I_p3D)Nifa&Y%o|w#SrNvN$=_wh;8O5YCtld#1Ti`Z_4pN7Y z4h6_32P|L{c4ly>?s4phR+p*^y@e*6moSBlSe<^Bx9R^d`0g$1HwX#S4;$(p^p%!Q zl)-?8ndIC zi8tolG8kApaiX`Z5@%1b=Dq|v(yKc2fB#=qzf@XFwO2{1O|_S*w3SLyNv+b- z+NIvLwA_-r-Mih6?KX|w?nP~5yF2ZrZOE~Wv9Xk^@ux+D5D=9>)AUMi%;+C8R^gM zb;QfeMr+vV69x^epSGQMjVvATd%fP^SbAzcSW*6Ee<0gEesnNFmJQlA&D1kPb7H$J zo084`0LB6skaP+2ozN+GS!hq@y~tzRWSG%1AiWuar%HjTBFrilt5Pyaj%#{SMEhjD z9EplXx>jE)OagxATeUkorEOoJ#5Phz2~W0{K83c5goE88$pHLh<)&f{3WhZE2pMOk z(^4mNw=14+9rl`k!aIw|Yw;P|IH(B)&&)CJ#M&}LkPlWka1*i(w5%k0tfHH%7%OZ? zE&# za}y2=gg^1M*XUZtwH08bcmnA{x2rz<{dvtJ)vMpCex#ax?#K8;(i>4?@-J{LH?UV^cS3|IHD&NWD)PbVa+y^c zWoSjx0SYGaPuEt-6%~OBm_C$hgf?!M)4>%)+S9}zLc248jQHEGwgbRxhv`m#1DSwo z#t#qFtyuW~%nzB*nIATvv96d`ENAK-t~*;7I%ht2`uu|royH&W!73iWn>yD%jY$8W zK-)<{+d;fSXGlk3yt7D1aQnQ!|F4sfS(Qa=~^H_fvtLS!oRT1XG zCvaQ)`VcRw6b0}DO6N+1d zAB1g}8d=wgUuW`&bz^z~Ky_#5LZ)+}2vie>4a|EzP+b70F|!1Kt zoxEs<@ULlaYp_|ND#=~|QWQB~T7vj^QkJPAq%i`Xfk;5ng432qGb84fBD9L3&7P7< zJm`|b$*D>)oV+Ck9)PZvu2{s==yD>b$iFUuPwX6dqgq9L4|#YAg(Mn+Vz??c^bCqH zgPC#k*1pMY-iFLlwso$nXL!lnP=30y%X{)-viop($RF{zf^b)7>Q5!YJyktR9i4{) z(J6oXR6Mo0CB789rEx4iu@ZYM9q_Q%EUh+ou)$^SSbf%Hx?pN^`P)efLlQ|}ke5 z$?P0>{)RVB9{k$u{Oh-z`2OPcUQ4WG1R@YBhEwJ`vlr6cn+Bd={QiksUZ0=++QE}= z+< zS98GkeFu|^sJ4UyV$nVTj*#2M_Z4mR=%Ob4E= zz@M=~a^>vQXg6(4P<=~7H~*XTI;`vluIQ)453%yX^h}{9tGTY0s7NFjhJ`qNvf7Do0#DhA*jpZQ z4ayJI3daB`)9qH)keyB1Qz?6LHrwv=_}ww5Gv@Yte9yZ_2bL2Z_q4}v92jxmRa<{g ztj(n=23K4BWPR;j^mfqaq`%6q8=73)|0LExzEcUlOgs+d4ayS(+s!hgOfjArh#YvH z<^~H(f#kt^?#6_|n_)MBOwsGZJQq4Fg-kYI3b}RwL%FYl-X@a@w#@p}dNGuPG z(&PZL{WyD@-GPjdja;Ydp$K(k_=8Y48ryyzwwS}LI!*2>j_aJ`Ts8=MU zbL5f5Ahr&4yFDxtX@KK~DQ*2gpu3}?&M6<#_l}0LZ4Q%5Ijrybhm8sD2Or$SBcOl)rsIm*NpFH=7n#~8d*Hm9abqB0vw?3k&Wapy47iAj@ z28HXT_uqesbg8vZvwxMdz~6jii9#Q#_NNjxv7eWZymdJSnbcL*$vHhmwxp} z<^JZbPIdZkSY=gzcQ%Lqrbxzlphex%rOAsG*tjfK3$(lxGe{t5DL1qL2&6b%dr7fs z06e79FM8VUs8x_cbQw5SA;L(h#k7NAkFW=xXHvEsAX~I7?}$%8(^n;fx^m4%u#5|B za;bcEsa%EfQg-!b#TEd3s=GRazOV^S8k5Zk&66fex+9F4O})8}Uj#ZGmNDN0_=KX+ zD0D9w$(Ut_GTEH*_Q_gze0*ne?!kt$6@yKYPH*jVr_>E`Ys?y&@VMKZ3IB9!U}(T+ z+gN#LLk=Of>7NS@n^g>1)u#NQ5^65c9INp@J|SlAZZp^hQ5&1N3z7y_L@Q@I-2XqHyG$cKCyIZ?=nf|3a21+WfSP{?Wk z){5X5=%EMTr-98-!HmWL9ovNJcs>{j!0Yj+62nE18V`*T@t7DN9vQ>R&zw1P`#Y38 z`OY2p-h1!lME?XkiTFur^*;O)!Ixrn|0$QCD#c}$8e1i{`qgY9h*gC|D=a~r3E#Q; zH}C(7WmdnAYg*T~!LjovQbrn<5b5K=>-4vJEjk5nM-X~pzSE{gf&`)G3@}!`3qjE! zjlNb;bcyn2S3!Tl$3zQ`)&NG$+z4~qgITv6vEN(X?DGXfO-F|&T0(W!?4It(<{`_y zN{zR^(eJB2KDMbfVYT<{tFqYQ{#&Dd_e&GGl;7{R*_%vV-mP7s0lPij*ft!nw8m4I zj&-%Q?&{vaM0a$f!`A8R+?-(h%B{8bhT2Yx)8eki`)B1rc8*73+9i%A=OWNpFyagN zz$^2pHv}bK4Ts^@dda3<8W?o17N7Yk{uzlB<1~x$n!x`dq4Hk;0cn}mw6_7V z#5PXgJ~{jK5GZ;BEF5ftvZ@0%&At8jfc}l`2CoO5g;?#fj-FB-#fpY+S-{~bly7l1)~C!n>vw*z!+-wZj_&QL zXxeYLq`G>NeqT$7W_lYkC^qnYEK2Jw9760N`U6zz*!))@j0;d1QbG2RG-(!4S(D#k zuZ&hj#g0ar4I+sOS{J}F`U1ceL5bFCS>>CICKcI|2Bppxz}1hl`b={&l}BCKFrZe7 z+j(IQkz5InGVo8Di0WAh(9BtL!r=p6rz@b%M~c>vI6Z8tXWRT z*f!RtH)zQceEh5yl{WmOk`4*#1_V1}M^ATTAV@*oV5^oNwxvAGXLI-zQzdREGk0r$ zle4*jdF>9b(vUCuGiS_h_xS8E1k%as;Tv|(Hq6~V;I>CyHZPS{@2VbN+&#w&X`G|* zxc!8^3T-zo?Z|DdL{Cyz`-n%&&-6MwgP58EbT$FD>B6p#4nXD;<~tmY`UMOL!tqsn z)6?wN8@Bj^{C|NmLn92$g5q1EsO0@3>(!UX4ywIFq24w}je{Ljvx9-|bVIEj|GZkM z6dK;t=y3#t_-M4h9U9(@Z=uk}nZ^d#Yj`un&muO%Ed7xP8i>J_r|51&bSnt9Zif(t zj6t^@L?kRmbPgXd`$^H4$PHM7bsa6XD1YELH-I}HtR45$#Xq1b)V(@r5$4j+S_20g z)4&wdJ^~u802)Diml_)X!|30#Q1+?b!B0e9U;V-Gjc0mJ@7Qs==gf_K?C1^2yJjR# zAh;}H89-B=!0W8Haa9#ZC>k9KxF_NLA`cvcsVhgxS+@FFkTBr$?1@t+&U9y2e*t8f z=Ed)D?TqlP(Y2$v=x2pD?(CUt_n8x?R^P*g>B?)Lk~`(Ug~(K;vM(6GZ6U)iST5@` zVU@M4{tAA3!|K1CIB{~3eT;o{^~jg;N36Id8Kgk4gP_v@+RcZvKo0OU7Fc7YzCySY z;44H&6HSK60!KS+N3()Q^O+Sq-`j7?_SKKR^A0=m!V2@U#+4Ni7QKNdq?z*y`nBr= z@B;KD;RR7ydWB>0u=M2SDcq9;s`P3?0Ac9FGDm^2;h0KHxh@F9~ z5c|0B4GklKctWy^P01Lkf|!Msy6iK~k<3x~K)5pj-50XV}3_ z!h*Lx@}tc!Ubyta+DBfOPrvsXdLRne<8?;3dRS_gw&gYxA401~*6E!93>C^#0tASY zW)2w*<%$lT*#-U&9dN@ka-BkpX#i^nynXG__JFTG+z=+NAw;LRnY%)~8ExQPMJa4% zB>jN@0Y-(=DHP2@NHA2*Z@0`OQ=41craa#1*0xQlc~h?(@Z?Bgy1gBc>K!19$w*be&%;B>V4@syAFdl5>hv1Qc zR9+y*jDl@ar)=?g!$EJ{7kB%tVb$P@XS9eksIW;{O}91bNZYAaLZznR7Xt&)-u)X! z<}AAQqkEl`b2~<2Mw5MX+m_*7@!sBeysytt-LbW2!@l0MtN+G!!(Fl|zIkOiJ|FEG zY}8d8>5C_NdlT_KP4>Nj=O!%(F>UbLf*zSR2bus@(As0-<40Lhk=f2z(5FOMFY8+! z!p1NE$@}w1SqkqMMOI%QR-`J0aseJ7$sRzj$Q*o>;d+#05>J}5lf)CqIcdP=Qo(gLPv4tV4&riV@++@no^r3Nqr>yYL;1Lr7C(DhK3;BP@8}7Gw9aT0p zlmEoEgUHQ$0_X+Pa@@?sKuuN!L*!UVf6YA77{geZbv0wTo?cLhC_EUlE(f`Uj2 zIG^gM1V=WAj}a_WMJR=i#0}XF^t8;6=sud-fud@nJv0br5#eI1u5~C2j-)E37Ei ztenD}s>DDK<#L=2PtT@|z`Wqg(aR4&r6E{&jy}ON2+=I*5d{a2gr$nY-;l10#+)gy z0!s^Qc6LM>3Z^{FKI~@!6Z_;#gF`RfynXlf)hF*}OLwtm_Iq!=wfY#CpNRcwjn(bi z1(HKr-|sStJZY3dQa0D+aa$;=PL&nNdm)UVkHFN$qi{8tgAF{#vdQnXS633v66wJt zfWm1tozb=dLU1X6ATNiY8PgWP8d^5B=mrK_X1k{sB0Hy$XdS8Tw$1L`8nK%z8#i`W zH6Kp><+i=e)1%2PvzhTku&!#sl3-^x%yu+2VWemkWzl<8gtQP+POFj>KICoyx+cZ< zMufk}BHb819IKV{=+dJh2q9xttv>6n&6}Tn?m3owv*mb-4g6sD@#QZPOCjtf){kpj zq+~A6Ee~`>88@03!?m$yaqU7f=s z?Z(Ry_XF(&WShX;4ESM>!~(I#dW?jVIVs8mBN0|LM2;2&2jgg28&F7NV6k&JF09&^ zCo=6#b|u{&@Iiz|J+ZEEgMZ?#7oTx>n)`1__UUwg=&H1s(=BQ5To>peOs1BWX7A4I z&O5vQ?k{R`Gv3<H8lsDukU?= zEWat^jRG{)fQ=K@7$5$#1-5iG-j5>N z#3qfrJ8hGu$w!7PXGka7E7YtG`M~{3+=2*0)k2Uj<6`{e{48-X&d%>@A}+?JUGme1 znwIBhmjWxS%IE`89{^68EAJ|Mpf4n#zxA;O5sPZ2&}vgHG{j63CQK{{CVar=lNap} zy^i%i2ARW58urJLbCE4NeI6%7(jDT0Z~A~W8yxk ztJVd4BJCD6rz-)vmNd(C7g}Ia=PwS}zVOd$wuRN@OLyR8s=jnz8=@(rVZXPr!R0`# zbS0955-dTvGXM#oi$aB47wl@MrC=+ex&kZ>ceUWV5}{|L-F+juJzYO`W^X*AvB0Ib z)erC7`eE>3T~J1%P3<*zg+J7H-&FL#4}ZXN&9UKMHurAb6{_?Nws^9s`i6Lbv%}e3 zEz@V`JK8~y)sx=T+Q>3s$Xb2BwXclX!|q1RCyXfg>Ax=#4nLEdbUJJ>b%@RgCON6+ z%9Ncc6Bv4dNr~wOz(m^{X$1T}IJ!6tPrCw?aWC^~tZxNnT!;dA54jlNI_ zY&dtQw{6(T`ubbaEdvAlBV8>miEel1*m7&Ox1|*+lideLhY$9;?2GAKDs4UP1d~+C zckuXzU4Jlt`#@)BZmT zJb!TU?D@stKeu@P?BWBqooDfn^NZ)s?mUYjpnO%b(J3>?O}Hn5wHfwm1))gTGQ>+^ z%hmzE(&?hQ8B;C!@B}H3ND&gaCuOge;+_=l3UOV)L0MFbA6b1vme!jaT@<*Q<~=4)b;D*Ut91fG_%GDv`Y z`&|3FrkDjlSFz1$!Fx~@mf?O2XwBfTp}S(adt9(k{a$Cp6~PWBbRQssnCm!kQv{pR zVkZrdV(Rh)+rBhSa`HLlH;4lF?*182Wq$&I<=$2Q%>H#8yiXs3_>X%YA^_797c{&r zEu4%uFN2@NEbyVXJEZNoEfuhuov?ghy^$3S2uINw6!asq7kEF$sUK;<>a~7|MVZu+ zjCRC2!oh%_0{7vPB{SN`eCyvvW4OAOz|xmE)R@NSl-?6;TJGF>j6{`gV>H-S1IoS) zcaH^kfAdY&-y9!W{XYe=r#p9IH}?m8O*0_zYqyvnrG_9*NJ_msI5U&W&4B!AZH+V{ z`6cD39Ky_pnZtI_nc0Q%Eux&M(r2W5r01lvmt}VGxr^y|Nu8Stbsm>KjMk_lU;Nnm zI=c#WMy0Rf{7_z}Z+)E)6`o;9`dZ2Li{;Y{Bq4=on=V{)5odhAES~M<{547XmH}%C zVV==@?U5ejZAJM%70P!>NCL$*MfpEy>@6+-MxlI;($n(w6>s7C z2c##9`;#JeH`bt(%9i#`oh>zp9E#`jdolm+L7DoH%F%}uz@zm^5Yg}X^0^O*@^0MuG5#)gUVmx()yh>iEj`b# z<466^@VP4L??3@vUtEXY1?Bu*^jEwKpbl0;?*d^?&$bH%{Mk_6Oyi=JPwnF6Yu`ip zK6)3ed^-wIf9>B;K1T1NmCvDou0#EQL80|hj~cXI9_8zWm8=)eJI>!1bj*D0e!|;c zUOo*}lddVsY3xM(9nz~M<#aEU^Lssa#o82YsZT_m$1zVXUz?oGnLiIOHU2!}`j?ka zBW#1eBj&@+y#Gc09om`__32(H=ly^9ivH(be15Mmzt=PaypDHlL%$ipqZ~qkk&M5AB33bucu5@XAMMKjL@bBZb{cEVcQKA9x|WHJa7rqeCOy z+DRrR5I&0YrC>dAFcu71C8u^!aK?Sdj$Q5Sj%n-!=a}TX`~Z)W=g?z~n5B!*nGBNt zXLu#Bz)G@(;|ZHZ)-N4LOW-EO6j@4+da#O|Uufw>IK^v_5iZVwz>gy57l4C_=vFA_ z7icoj7^3(h190Dy;)JY~6Kt5Dk@dz28o^%NzmGqU>Z0#mc)kJtz06MEX#^JVd^oMF zoW6JB_d)*MSViBp6Om*Cv{U+yF@R@=>Q}bYchX&F`1Pt3`aX@{+$_1 zWgBJzc6iK!jnW0_1+iPcke@-c+RFGU6uae&^f14der+qAh9lZSLhNTR^Ku8u!TpVL zQGXx9C+;P7A=;V6uCgfY$;se$gfGe1ntZZl(ePUD%y_VC-s5n(JnNS~@d=Twal!MAEKwhPM@aE{(LEw_U`(M><&P zNMpV-%+$hOxd#Pw-)?y2aq5a_i|5&Yt0>245r;6!TTx(;#uQOb&v~Bj9VQe&A7CDS z9lRGJAW0_2dHIy|-wW?`UZI(U`k3(}7|5&4B($ZOB-$=W|Bbg5@|N@~pSYLwV_q&~ zEZvJ_tO_vluX(xH`=}qp-nWSUxx635UO?|ldqGhb6>Xm_v>gRw(kbdg`QoX3|MRw7 zpA>EL`lM(}V<+zWB6M#WJG3o~9kq4w{-L%8wtN~NG-t3XaEgOyi|5%-dng268(-Bw z1y%_QI1)Ain!wS|V1lK9EW~dB9Yw?sEH_#o`rVN7&3c5Sc^h#|N=>B^soF7y+{#jZ zNkWH-Qg|If9Cvb1Y%uT{&N``jgDsJ#Sb;IljHTj^SS$q^%J%}j0l`CAWRb%fu{AmL z!yu;A*1-inN1%W4If6Y8vB!=`-@0NxincT#McW0~NhHC@U;S-J zdo$J<(0k(1s(^ciA|Bz|q1@;L6t(G}t}K^1X^8}GII9Kqi=1FplqJQ(Y4~|aw6Ss* zmI-V)lfAukGEz2+vyqq?e}B4X0)O_b*3ubC?3rzt7gczMA^A&K;dlbr#PDTcMqqD5 zIM@ML^?WKoXv(r-xtwqX!2n+`)f1;U{V|p`7M=iizmi}4=B1@4@42UhEm@Aw3=GVi zT+cI(@g!OB8NQoY`P$wHnMJ!9pJSW_`PSPv%I~3O;0@B zDDObIfzA5yf%l>D-O1-63LvY7rOB(!Lw1||IrwkT7CP1z?0U%3qIZ__a)NeVqx|RM zzEp=1Aj9kE@^vtd>{EY#5>*~{fh5Gz`$NBpLS19PS4*c>w*Egvx_A3<7 zGtfMQz6nj}mnaYj>t4)D$_4+1hJ{rC3j@ouz{12Aj)jT*DGL8Va8WTxh~r!wvb+q> z5|<03zV80(sGf^ov*y)duOcxtA_)t)7l0zrbrDcx=NPw$w`k zFtSdJj>=}GFBN7EnC(&Cu9ZK*%LAy7)9X-<)yV6AM=Ph@o@R*Hy@!E3T}7k8?oE=J zc5lp(ZTP@5IDw|%geH`W-Fut#KX|znoHgK{M!DF%w@IJW>g(6lpOs$cvI=5_##o}?_0sp&{vOi5iATCP%MhiW;$tq~0)6ui+8z z=tyP44f|8UxnDPX8?0V6Vs3LMbC`_y{~(+B56C|l{owoqKGXhz%_uivraiv)Rj!3d z8uCgjWl(zfcjl+g-@lmmK$20y2tUm4H?sDoxSwWMLyaT*3J5|}n$PWkyIE&I*gpsj zan!I5*bVGuauXXFt02(CVBq>5+&hRe+6^xl+QABF@)Nj28T#a`rML}>bR~0{T(%Ul zfHeIy{)#~wJ`{*#StS^ra%g2QM zrrzkbY~R_?=mei4$BEK$s7ZiymK7H?AnNu57elt;yto*7Vbt|)?BO~;mg!A>64 z&I$krWgPa8a=pwOCU^-21tou~pRl+xji*{%`>)(Chdk#<6j{5=@)VxRFTE}z&ui)! z&UiE6=hgJln=t2$kJByHmL7$c8f|0!#aeMYRY-0oyd*2;6hhx4{C1q ztmnO#Eug{Fi0^4_+F7~sA9+r|N3Q>z0KP*00MGL*JUpX6BkT#QwtziZVY8NM&9j8m zV&A1q{SkKEnfgg&>f=sTxEjt=fldwUlPuuF__$U%*CD#WJM*6<-c%0%7V)OMU%$id TKr#_LfslvfIfvvCp7Z|;vKEK6 From 68bec2d362e380ac30a86f9103c42f828eae3dc8 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 18 Jan 2023 13:52:17 +0000 Subject: [PATCH 13/13] No redirect needed --- daemon.py | 1 - webapp_conversation.py | 5 +---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/daemon.py b/daemon.py index e08a9e535..aae4314b6 100644 --- a/daemon.py +++ b/daemon.py @@ -12285,7 +12285,6 @@ class PubServer(BaseHTTPRequestHandler): msglen, calling_domain) self._write(msg) self.server.getreq_busy = False - self._redirect_headers(post_id, None, calling_domain) return True def _show_individual_at_post(self, ssml_getreq: bool, authorized: bool, diff --git a/webapp_conversation.py b/webapp_conversation.py index 7b1b6de21..120844494 100644 --- a/webapp_conversation.py +++ b/webapp_conversation.py @@ -99,10 +99,7 @@ def html_conversation_view(post_id: str, minimize_all_images, None, buy_sites) if post_str: - # check for "HTTP/1.1 303 See Other Server" - if 'X-AP-Instance-ID' not in post_str: - print('DEBUG: post_str = ' + post_str) - conv_str += text_mode_separator + separator_str + post_str + conv_str += text_mode_separator + separator_str + post_str conv_str += text_mode_separator + html_footer() return conv_str