From eb99449f726565764dac26ee1baa4e9e4689f078 Mon Sep 17 00:00:00 2001 From: SimonBrazell Date: Sun, 9 Feb 2020 11:08:04 +1100 Subject: [PATCH] Avoid redirecting `studio.youtube.com` & basic instance validation --- README.md | 4 ++-- background.js | 25 +++++++++++++++++++------ images/logo.png | Bin 31646 -> 39876 bytes manifest.json | 4 ++-- pages/options/options.js | 6 +++--- pages/popup/popup.html | 2 +- pages/popup/popup.js | 24 ++++++++++++++++++------ pages/styles.css | 21 +++++++++++++++++++-- 8 files changed, 64 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 515e0eb..60cf566 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,11 @@ - [Chrome Extension](https://chrome.google.com/webstore/detail/privacy-redirect/pmcmeagblkinmogikoikkdjiligflglb) - [Firefox Add-on](https://addons.mozilla.org/en-US/firefox/addon/privacy-redirect/) -A simple browser extension that redirects Twitter, Youtube & Instagram requests to privacy friendly alternatives - [Nitter](https://github.com/zedeus/nitter), [Invidious](https://github.com/omarroth/invidious) & [Bibliogram](https://github.com/cloudrac3r/bibliogram). +A simple browser extension that redirects Twitter, YouTube & Instagram requests to privacy friendly alternatives - [Nitter](https://github.com/zedeus/nitter), [Invidious](https://github.com/omarroth/invidious) & [Bibliogram](https://github.com/cloudrac3r/bibliogram). Listens for and redirects requests made to the following: - **Twitter -** `twitter.com`, `www.twitter.com`, `mobile.twitter.com` - - **Youtube -** `youtube.com`, `www.youtube.com`, `youtube-nocookie.com`, `www.youtube-nocookie.com`, `m.youtube.com` + - **YouTube -** `youtube.com`, `www.youtube.com`, `youtube-nocookie.com`, `www.youtube-nocookie.com`, `m.youtube.com` - **Instagram -** `instagram.com`, `www.instagram.com`, `help.instagram.com`, `about.instagram.com`. Allows for setting custom [Nitter](https://github.com/zedeus/nitter/wiki/Instances), [Invidious](https://github.com/omarroth/invidious/wiki/Invidious-Instances) & [Bibliogram](https://github.com/cloudrac3r/bibliogram/wiki/Instances) instances and toggling redirects on & off. diff --git a/background.js b/background.js index bf06841..5790eb5 100644 --- a/background.js +++ b/background.js @@ -55,9 +55,22 @@ chrome.storage.onChanged.addListener(changes => { } }); -function redirectBibliogram(url) { +function redirectYouTube(url) { + if (url.host.split('.')[0] === 'studio') { + // Avoid redirecting `studio.youtube.com` + return null; + } else { + return `${invidiousInstance}${url.pathname}${url.search}`; + } +} + +function redirectTwitter(url) { + return `${nitterInstance}${url.pathname}${url.search}` +} + +function redirectInstagram(url) { if (url.pathname === '/' || url.pathname.match(instagramPathsRegex)) { - return bibliogramInstance + url.pathname + url.search; + return `${bibliogramInstance}${url.pathname}${url.search}`; } else { // Redirect user profile requests to '/u/...' return `${bibliogramInstance}/u${url.pathname}${url.search}`; @@ -71,23 +84,23 @@ chrome.webRequest.onBeforeRequest.addListener( if (url.host.match(youtubeRegex)) { if (!disableInvidious) { redirect = { - redirectUrl: invidiousInstance + url.pathname + url.search + redirectUrl: redirectYouTube(url) }; } } else if (url.host.match(twitterRegex)) { if (!disableNitter) { redirect = { - redirectUrl: nitterInstance + url.pathname + url.search + redirectUrl: redirectTwitter(url) }; } } else if (url.host.match(instagramRegex)) { if (!disableBibliogram) { redirect = { - redirectUrl: redirectBibliogram(url) + redirectUrl: redirectInstagram(url) }; } } - if (redirect) { + if (redirect && redirect.redirectUrl) { console.log( 'Redirecting', `"${url.toString()}"`, '=>', `"${redirect.redirectUrl}"` ); diff --git a/images/logo.png b/images/logo.png index db4030ff87101db92c30857e8bfff6d2e78183a9..ecb3e381105a517fbdbd72217f2d6ab1a22a488c 100644 GIT binary patch literal 39876 zcmeFZ^;?wR7d1SDNDKl4N-E*d9a7Rm4mGq0f{1jNN_U6S(hMB}(hW+8fOLrnNSA=p z&2#Yce4jty{rTm(yc`kFeeM%`uf5jVhNILJ2=S@#ArJ_mlA^381acc20>R|R#RT8+ zR}@VGzu`G5>bpQ7Tn}%4VZ6zgdeSC)-g#Pan1m@2}_TNV-2I7#L*8^XQ*d3_^`}^PDJJ#PKloytLf`rONyNC{#$sz)vN7Y-|NQ}B#_!Ojn!V2>ah*kYbM;zxs(Gf zL`re-dUn(k9B|ZM^qZ z3CzX%f4du{SvYgKCfN?poNW~!{Il}g^+(;drKFFxdf$%czZbqaLp*tE_0+Yy2Sh|f z-t$|B9X!h~V^G>E9){wgg7+rgRV_WZ`BA?#@S~2kEC&Z-yTS(tEwXkFQz&z5HnxY+ zuu)s4_yhibbNuui%rQN8Y+L?P{Bgz|#;mhQYsK6*HMDU|mwEpl>4;;(;%7`C`4(%q zvop(6{GojP5)!K6rHs%oH=ZJKI92YFL_|*B7QRfoj)$Z zKTlXq+_P1!5V6h7FqpidqQTQ=$#nC#QZR7po$e+2jvkW+ejM9aa#ET8uqABV$ThS1 zZ_)oEDDb~oPrTDyXtQ{x!;J@!uMDmdF zz%W?G`&3lridm@t4U|rX?f-g_t9ESr=-Rul%5ZA?I?J?fU>1A%A@r8YqWj$W_O@E# z*zC+wa3Ir}T&~6}3-`^1en&G>G>4eqbro&fJy%dbh#h_#A1^bg2Rr>YOs{954pW9C z1hZ-1yM1iC&7oFwmJ9JNTcp3ru&39&T0^j}|7N0HZ`a&Mo|QE4Wqcdg7EJTz;YaX9 z#DWJ4Ob|&;-y(96)8oO;y;%S^oR5cX@D7&Cn$bMwrE{=6KDyB#R0htk9~ zZNCG2+gnvhSYCuYC-c+K)Md+D+i?6^tiAbr+xXxa)w!-swE6zIJR%V5lzGZct9ZQk z8ctsk9H-v3GZ?cT`bTWnDxcv@W6=58@nK(I(N*dM|8ZOMO{!YO_muDSy%+pQ7q85$bz@fDC=|o@EN@Q=4sn?+XSqs z8#0XVX#`n!IJ@%J@=4ylIli`nTcT>;R)26#Sohba;@swA>2Zo_p7plM-xeJ#{yuJr zlpwi2u5SA2wHm#ist?zv{l;*yVY;iO`gWa@^(>-0Fuo&Z z+yJ4{Qin}9?+7=Jeh-Z@3D)El$(oYavzG0=aLHIbZeuq0O0Hw-**mz3F_u)L=em*6 ze-u-9=8RrDI5g^3bFi1(^?o3Q0} zBpS0%mu2x+-J--Ob;RiUc9kaEl+&`uyxy66Rz9I96Z_JHqOPtU{KFV^ zm8khP@%E2@+9u-a%&;IYdL>0mD$0HK*GG1JuFuy!6Q}eOjVkI5OJ^HBUtb(;7bZsR zp7)9orB-wF9~9DUhsb2Tu;{fK)UUi2_RKs!TweAn&a*ofyk1{7;$n7buK!`^5ab}z zyK5w#mIwAMF8!O-R%t08wHlWEpSLkoX=(Ff9tXz0C!GhE=U`n`n+`Gj&>cKcZF)Tp z^FCS?)#G`n1k_t~6_xq+c}qc3&j$y2B|k>G-sVZ%HR>ChGx^XtoX=e<(en1_tGDf2}Grj%4AQnH2fYQ1vGwCW)1y{E3u1~fdXa@%cQ&l54AkU>tC~nRkcpuV&bYEB3wVh`_$cu7H z_{fCNh(jgYNuC_Ib|4mIG?=A~acTt_XI2zjiTPWvWg$@-?B_J|$L$V+)X_N93oDK^ zYs+q%@9kzxO)Y4r-O_DpKeb!xb6B%x{Fh`2A7Fp(z1!%sW>qm2IlcHX9L#AXK-R~c zDXmxR>zdt++L;oDUnzLmPP*?;jMr3Hg^bxQf4f)c>B4*-ENkgdik93pv||5!rV>2) z@~?rr+oq!IzK`i2*|QFwi*oI=hIa1t-I+SO!ZDBJ%2cpx0I0b?WZ7La&VEgOIsUGGIv6%QdCS`w66B4dinguHTHtgej8r%*IKP}mV&I17OwuP zoG1Jdk8`=ZmPQAKSGA5LGpFR{&owx$$r8^(LqpqWgXmSwZ*3fUfPp$>6GR!pTCKcNd8!*DP1LUKXnYkQxX-sPWDX1TZflxIGkBz_r-2T*}P1K&gBaYmipjN5Fb??rrSbDCnl z=7_^)ac!IBymvzME7AL~QR>aYoYRz)+oxVW<{{c-kTVd#j=sNd@D8RhGiD#Z%+?p?=#=Saw-8HrzcI^qW{cH%B#yMy=a*~tyhuaWsr@?wD%*}-FL9J zcj&>1(`5sQVDD7y_!`1v%x1<<>2v1x$MMxs;ib0`0Up_%g!Y9k_Ugg@3G=a1i3|+; zD}1&}?NY|&%qdAxm^Mub92z}$Av7J!YDZ81Ly>K*G6di&nyKm5;;F1PH$wp=`C0}(B6&~l?AFOfzWtm>rXI9|6 zOK@vP1_M3-0wAkP>KonS;RY#8L=Rdqt+ZU-Ku47-M7~D!y)?XxLtxLl`t<3ifr>5R zJ%?O-;W~Ez{YkF9U5^L%=)!i-!CC(s9&QmCiKirUzlT-Q=c03_-uH4Pc_>T5?n4DR z!L2w{L%9J5nNh`u-#foA=I5`D#zKjxZEU(5MZA+PAC3H&yILK|oxi*~25E$p{2JrA zun9$5_<6R8)`@~b%RLy2RTwL0UyF#hJ?%jWbi%a!@>iVhJt`}3uCG4CS#1bSuW^-i z|M|(9N6#A@h$;a3xk{g7%y zlQQCD%e5Kg*7-(Hp*f|Z3^nq#Rl&*0tFwM?+T&y6iVq;D_uBBJ+cNFv8T!=M9-fXB z4&A;j+2U>Bb0N(CsC(o0p~rsy=t)=CMMuDzI~5HH1h=M!<653*4Y%{%l#BqQn~Km| zzWiXPv#7YKP0VlEKjw<0`25Y#BqVaNNQU;b@nXgECQ$#7fx8W`#C-qCi=QxFN&fxK zm45K3OU^&o*%W1##9F?H%eUJ{`__*n`Ax0HM3HTlXBQdGuiG=zZ3WUs&B-BtFQW%k zMT0DJDjR!;qESeX7gXAMMMIn+y0qBURo%yBNjM5!!_@zP{%(&1GfGD||BrbgF{!?iyunGe6F<+AmfLiD->lz4X)5 zKuP(s4U;SaGptpT(OEq|bDf4Q0nK@suft@mOvDSPgXBZVprIt}I!{=f3JZ3Zc z&k2*(P?U@cw)7u!w?oy|2i1ZsNoL~jQ+n6-qhtbBZD+Xd;g8@l%^yDomEhQhYjb#N zJK5a`i8Aeo;0|A{Dnhz@9Xz&n4#&*DrO`{Z_2%(YGQ^L>5e~0X;CAQ^w8?t6=xjNO z99!SYm{Z=`!_rhn&{npqa+e%3IQ*3k%95^ml;inKnA z6OWlzF@J5b=3dKo_8eO-X>WHr)ZmuVbKix2l8_EX-biV6v+R&Mhuh`LO*@g+Zs12N z+AsD%c)_#c*`&QMZeSP{!r^qA;1fzIQ~Cq75rI>}L0*$mV^Yl)zNf9qAl5Ub&OX$` z2%W@);HOE4Yqhl)yLQIfrLa8|iAmE1j{vljzK>&>11=n6igc0eKv6KM@v=~|z}OR! z;$PR!e=q~|uAs`c*Ou4}zKI zZS8bOw!8M4<&2yQqlJ9h9q%*f-?U~9Qlf~l_u8wfQoa#S)laK1@jqhR(YbdJ3xaH% zZ+69bE4@QPi--x!%rd%JzFNfR{K%{Lr9CV)D`onL!8r&cW~Sa5a54&6fma)#em3?! zH8Zv2EKghSUYSLs0n1(e!dg5cK%1~(omvQ=6RHCFg``HEuE)NzudoC|QtZg>-*9bS~ zx*RgT+B0o_22zYq{5o}7+Oc!v#`$q$|1C$7DYtn$yJAssug4h&d4{^RPM;-3Ur74X z?U7U4$L02JFv;q#C)&qZDrdt>?~9V(l!HrAXO2FMEJh#g4EFST+$7JP>w5bu-nHU& zpw_#OFF{pw>?|Ta^VyJ#|Ix(!ogqiK)J?+kFk1o34PpgxyLL@;J-J*Cp}7#2usTQv zSNZPwUP0(W+Ye>MY~z>u-L~s+$KZUP)ltg?u|zaNgAaMd^o@-t>Z|0c4QDtn@`?jI zivc&_G&mTPt4o3=(;Kd*f0sahYkvILHuUyO=VwCY#g>5XXwwEUC{2;Ws_oejWCLbO)30#ZyNjeB|Y?GxHho_<8 zi$g|>PfrVi*qk3{2$n{q^N?-clKyyL78Le_vKaAIMfLK}(e|2p7JxAyeX&t2;K>56 znc$hMfST&wU)vkP$M~t=EhDYu#PYd@ZtwML!d3^pr;lURQXY`L(ARAzOW641r~4u$0v3)b%r43Q zP%@C9bGTtU3C1!_A*2B(=?TdE2SxAa5IC)ASnd7!nke6|9Q zuvS7N*z)on&ak_japVaV*0LvMnT(p0cZ9`Ggdn-gLvj@Ox4h=FjGyq>AT^!rcY0o( zFI`DIlg6lSD5oCCzFyd#p~%aT&4HYOM6;(Jvg#s};P_0hR~|dSiX;Ksx6}Ir7(O*& z!z%NN-`KuJg~p7@J?ZRMBn#}G8b|+&G%?4NBJuU9`1pdF+uOTg^G}S0oJ#KdwcS3w z0QdTDkGmabMNYbPP?#(R%XET5XA6+MNQ zZ&{Fz3TZB^1NC*kZGx{z9Kf}9kJG*V&lryv{e_kCH9>%wot#_?3?B!}C3kiea+AKzN~pu};VBo;!ED`KzT#r2 zxR~}yf~ktnMWIW1+0ZO;B0BuVi-uQQlV#t=6TXE~zYLZdEWt}ef3g~BI{~-g;g3M` zf&xn@K3rA6n$?=kdgthr1$GJOk|Z6e92V9ei=L|-Gj%K6B^s1$VXWQ6&V4n9y?Fxa z*U@R;?~uSNPQWKUTJpq{CaD z5BjKoXt+lzfM@qBPU&Vjz7=Yi6&>k40;4*cB{Iz{C%O)_iFBZ%-m{)Ba`t-|mEDBl zFlmhRez)1H19#Fjj@r6+1GaIJO z#<*W@^6sl#$IR&PKy473B44e(^t$bY1?SSs@lVdvm8!d+R&qA>N75Nd3FJT|1uT_v zEfx8?lwq`z@tEp!e12TU*MVO3k#y~Ru3@PPR;n<8aFM9*zh%r=1UT*_qH+uJyiW&6 zLS6_2(7h3U?8%)x=H44aLH23*8z&iIr(>gTGrvf0gF9Uk^nPPxES(pLwDi#M*1QxW z=WU@EhVNG&W)hQR{8YMw;J&{5?qkF+;TZG?SW)?3s;v?dyr5#5JbDQW#H0w<3eLgF z(Ec)j<;2(?5smI$QCa&iG==RYsEL}sgM0q zdB}u-BmkIDz^Wjg_2`4ai0RqLF2Tl&Rp=5@iPJ`>S=7OZnYBZ#1Gc^i$I{yEH+zZj zvmx9`oVJqeX80Tkxpv>vqj5lSt5lk#pN_O%U z3dYL<=>^DoXK)Z?bZO7EWSd%W38=y`dFgz4LuRwr;^s9{A8|?_a5t#^uozCL7u{c> zbHBT=*M}N0CVM4nXFn%H5wV3A@C%UG``LMWOFdoLkc6-1d?WAj!5`$mWe|0~1C!%n z+dHr4lTspnh|{N>tv-;<>fmOjb%o|np-rF5rzIR|elx&HzzFR=bZwe_93Ou;p(8$I z@ZZ(hO1ukR8-Kd)@+SLz_GjIe&6UsDCm_(Kz@Q*DCJz%jO+-&|{z5*zQ@-sNp;ZLE zf7hv<4yx2P2qXr)*qEp!5)kURbL+|+xv&W`ZTZOB!AMiEJ@ zrKyXH*Na8f*7DDlkcJ1RuOE`Z8RnMtLX48r9Z~UB+<`E8z>~`TjN~eGM6Oz_<-ES1 zyUeXX5mDOeQ2T|M>3{=w0Hm?+_TYvy;M~eCe1ZN0N>kbyyGv${V3QMDr`Tuv5Wk>! zV@i)Q5oRU!0YMg%7OzyoIK(D2pP+n3&Ugr*#}Rs{2@4k~_UF#&X@LGm9Zdr=)ULnV z@9zAjXr;lRqX&$ifQizzVgeYAC!Ke4)l}Abch_dZv6poqNs{h_}Zr3T;X@4e9zl*^tL^~fQUpK}~@m66SOc>2ixS%P;; z?QweaqlYGaUq2`-_TzKo$51l*f+&<;u>JL9@#jwf!N@1rIu|jz{8(cF6xkh|ZB_;{ zP!HxWuRZQ)c$67rJdWm;kqxpeorvz(u+yZChGDb~F-RCA$DQ&dsaw#!E41$6QZB0! zH1amFWPxl>f9($-p+I#pA@HCptQEPjLJdEC&!J*ytB8|lT-Ef48m6HV&i{DlestKp7Seus_(gzkt8nm{Yu@@}jx zq;GfuP#rEfZsDy#$ zM&I)M?LJ8Z&OyObc9IaLr@7M?9?qJj0jM4)AKQ9>X-6KANyTl@h69m_mE;zr_QgjH z4U43oAKd>~3**&0#0U~121=of(ALWD9QDe|&>{IOnaA76(l>V_cm&Y@g7afzwv5Lf zDnNDx#onpYzgH#RPypmBC80VVV-CcRBECi4urxv@A||w8hT{ck_*Mk_DS~r*L5=fW znA)=0AQ~3RBM>e+yK~Y7N?(JlHKX*jbC62%3@5=dNpaWN-Q?8D*-015B$x(7iesZu z-B4{|;k{tkNRdPRo;3N#Zl-SvI z_)s>zQDeUr1?G#_6M*`rILB5#A?WVShNw+-;H8_Cvu6;@U4A%P6%)TJiq2iW-xIEI zpW4Jyb6t?VSd!Z)&=dpGNk$M1h83^SWgL3d0J~Ys@53$^bl0Ns1zC&L!HaUibzIpW-3#P}6rq+JSx(af#-60*cFDxs^p z5Wjf%R4m~WVrFK`u{^$U{*N5v!xDvO#N@~9R#)$k`OCIzqV97+K8`O)L$2flP5q=Y z*Sz)EHnfPJ`dpmI)gnDn5Q=b6DC9i7tV6wdT5S2~9yhepvyo>06hfyhR`A49`PI|51im{*(yZZXIJHT?E#YM6>#-sj}PISKy$7!+u?I5#xO+B=q1DV}A9Q;C8!f*v7 z!H3Yx9_xtVD%9hQm;oH)j^Q_=b5zD`R+@}2^(W($RO(0C|C|?0$*SMUAI;@v@-cW!s0g-7R8)b<$U1MNl(5dcm_`-DGXULmTBlI+PBQ z+a)A!t4U@`c~SeP{LnDPp4jf-avqbCrMY#4v=W3)wGuGvzQ*;_NPsH}cjqliU=T<$ z#mnE}4f-?QfXyT)*=i^UVky;WmU!^sMk(06n+;jyxs~r4#*N*gfKUUa8EnrP8g4X#F^HT+Z%ZeX_hnw45`GT z*mZy}Br@88o(8CBz=zz7^pL5YSY_{ni(SWrRA0-~SNi5xUuTS?25`{;2USDLJ7s%UCWS8FTL`lgNQLxKpNrga$o4=(kfa6N46a;LW6uv+|6zvgCoC+IFo@KAyz}Wvzq`F!yw>Q} zVGQ}7R8_*5TVYtpcdm5p1#cBa{V`2=dz4bi?h{yh3!BftJQS+dBjXLH5>d&+vooX~ z;!+fBC}7s{aNYwM?QmkE+VuP%vpJNEygm$-1Ue6KxI8dt01>F+#8)cG?4~?!F5~>N zkKq@hSv>ybtO>kzCr>(e;>n}i#MCktx>9$0g|1WKmdpvXG#lP)a8;_GeHB0;IK~0CU3yUIupXYM&T$p6#D~OLefdS6g$| zR)>W77wM;|aA769SnInbgI8vCxKaAh-e0=ILLt=u%Wy>cBOE7^6f^x)j`*mEdnQGo zQfo8>3d_^$Qp-Dt7edo+O|t+~t{5y)QW8PFj95>K8LVQEZtxq+(eAM$rr$Cu09O&7 zdbN7iyJuaPhy&}s)88nXi1_6Mod|-k#rlf^2`FK}uea6Jh<5Y+d`-;VY@jFrcI5vK z84_VW0K!<=o#xeZgH=ND6hG$-HHAI;kN7^5(+`YuG$^Sg^^VTtQGOrPzuJ3j;XSqZ z1s^+p-&3Jnd&YCHKo~dtbqvWUQpzPw43=HYz);%Vee(at*+rJvDkTLSn_a$vpi1r?%(2n5Bz@1*}_W2r(9*Hvn}7?nkb4utvockmfaI z5CRaPyxxyi-WMF=huIut0qgr4_bQ1-0l%U^z^fhGpq<$!r~1i; z1(AKDQFe8(5O^o~F+fuQr+(*l!3-ljHCfjSLi4)0i=czfrB&Gww-R-Z##rzW`;Aeb zSyy!rdMZqc7I_XX6_=DxGnQ6{^OP)o%vTF9FHaKXu^?*B&t3x#dZIrWW)I_<`Z1R| zxKdOCDTlWkdHa?lj>a`SJF*NZHUYv0?(LlZ?E5cXG^fWS;4|?Cu zi?ZLuPMVm-0cNc~`Q^tCaA!Pfu%u+f{*eUi+$7tF9%GF^&vn^FEFMq z=NPZzsO#;SV5EPZ<6%uu0!`!>#cK#dN3vHMl4??h#2gWD`RrSW4^d~mN6o;;ozmZ) zp93~(ffoWg^ln)+uaYs?&W-9TsFpvXG-4#O64iZbQxpHw+ZQ5t=9(|P!`~? z7+lYjFqc^*BW-U5N!`pOy^qJWhIbx!=Iv(oh^<VV5 zfXQFzf?$;e8z~C5%-O;6$LMt^Q#M;y@-3NKkz5b-GP(+6O8K@xpX`;x_`z$PpGmHZ zD)6HF8Q$2nNs>03S>c%ZeHX*d;dx6(XfDay9XV-Yu~O}ELA-&XZ-8bTp(iUK2%u}a z`s3a1yS+~Pz{vf+`yLz5*{1qP3PJdBp5dT5-+UqxKdt`2qZPPa0HV}@-Ad2P=1br? zp!J$}5J-!o9e1KJ3ZTeM;!%6^$Vpc)UW59?a7vH2l_W-;f(mP-0bZ*rV+^2Uo?*-Y ztDMZ6%-8GZMit~{89nyHLQBgs2Yc;T?Ky`pZ@g*==lSmVXlPug+bq}~<=P)rO?NU) zDCYWCK*3{aPI%DU?z&uGapPd~y)N~}Z58fMG0>DKlv`hPH^jZ|oMDw9ig#0zsJgjHb4hUig%zJES z+-M|Z!|FkS9+;8>(g?nR8wlx=o^zmzowMIUU1DMHk8JlxGZT8FoZI} z>B}z|*39c)n)$SSOk3X*x_?ppe&cK@Xc0Qtcqrx^gx&;FJ}{=Ri9x}G)iuseful?^ z?=Zx}Sk|{wtq_1P!8Aq+x%52E;wg6aX%+c}hIY%mQTt}q2N7^k+xFpv6)|Z~)YFo0 zE1Cafth872@m4aJ`sT<-5aVnAn9Xyus#y|VzjE-;a09>< z0ObC~&T)IY%kfTix7--_InYRebHJ-uK!TSSh!$hW74Opg&rTQ*|IlS!dpXki3fdS~ zOo5A;O-~-D;zL0-C5?}@=k4obvXG|mHUSP$y=o^)=jGM+;KaEgGN9i2Bydk&O0U)YQB`kvQmE7dt&N7@Z=!7J&W9;B31Xo8J)+V%-dhXr@cRl zz2;p`s-x_>L)jq0Xl$Ih#_M{g@cmv=*s(#f-JUfIEe(j*z!u3SL7>=Dbm!pQTx+{5 z*z2FkFSnTBpI=2Rx6-8MA4b-Aq{9mB1QfxGE-~0T_}Qy?HGpYr2|sWx3g4M`#y6|h zueCXXS%)8-x)L-!64nWzD|E=seoij$@@%S#qn0q>HpwoJ_O#$>EH!_j*VI4Tn$E^s zGkwXr88{kMI$|r4o^e?rd9g6P_+m6}SPRexKv=&)NT{CIZ9m8;O2PO16neTpB4gKJy<;Mru5RGnh~SxU#$A421ah;;CEDZehv* z3JlysP=s6T3N05^l!GJlhv6apT>aBMn@UqL9bK1|p0|yDddjP(lJ!X_nSuf(QmDF0 zMo@`GkB<0Y{Wn=Mm3?vwA zKJZ`sUs(1r4oV6nso7UE8m|2#-+zLNIgXkL{yEL#*;TcQOecy^B&M@~OYyti{oTId z>SeL{H|nyVh7XMABQCkYm1(TEbA(2TA@tZ7ja|i;|>H zQzJ@`f-jtS_urv8FMZWb+sT7?wBvxdv+`867h#Ze2wWiohM_Opc89t!gpfRy+C0VW*fKq^RPv& z@Zp(27lo$uVfun>H5?9Ue+GC;fR&3zmLC^kQ3mak;p*?`|InLGLm zT(WYpEZedsNtXRB8EXBK*4OKnqR9`5)uAMZ;OtE@SfFrbT+SZq$-g-~c06=kgd-N;9ht%enR zV{i0_b~=hC=h9&Dj#&!o*a>>@@OL&VF~tpciN4Ni*gcmS3YF;1&bBCVOcP6H5KbPn zGHsdiVd(2XNta30z!=fUq#cLZro+t@< zdOabgjyBiQ!SZ;VVO|)k0!LHD>3(su4`jVwS6mO=+{YllR9P`KCLhe-56XdGELN); zkqzwwx)8)Afa<^71NCA>QUJzcjV%pj)AwBxQy$>y2H8S~Q+7?6aS!!=@Shxrui(Td zs+78p%!HH0S!p63mP2$+{>Y9!NC#^A##rWJ0{mkA8r0zwgk?{C-rP`Ctdvws!h=~; zlTVsLX~3}qRvJwhSipT(DZ7<{W89M|FMv~e6_iOIV4(sqdD^rh_tvkWNXp1o;D<}0& ztuU^41246=;cYY~MM?+Z*MPSHBoyOc&^)j?J9*DwiT?As?v{Q&tlf@-3D|Xk?w>#_ z>7!A$_cwGk=U&duJeVH?pkFvP4cwaIm>Ix`F#c!#w`=N#5)82Cz+q77n@Z7De4-+g zTA+l@4M0`zmjns%F|KvGv|ixzbn|4T=~3!XWt>@7_%LESr=?BmA;x885z2y{bJ`~9 zeSIbL_Cairb^ib8Hso2j-w|0Iv7N2`O(?mCQ65=^8sXE@0!phCtfcWxGO`<-cXt>0 zk^PG2EaL4tuu+Oo9@hl2SGDs`403j!vG;{z!fk5LlROtae zbfJAimOCm#4NyPZJHLmQ@tHGzkaMFITDTI?p`m=VYEOIQoo2301jJ`Td=jJPA9f7K zY9t1YzP#@YIPt$T^~pAm2J2UwJUv073yk9NJ`CBdfMN#Mdhd04Y$)bbTuN$Aa6Vm< z85rM@(%~JDxY7d?f0~V|6`D!>WW){*nYKOpd2RUPCkfkK$JmMk0t5j3k3iAGq9n8J z>H)%E8*>o;4VmxEoos5{!rH;(Ro9>x&T;@`|DH?lQ{}~F^rv5KocBZw0)k9V4wvDa z_Ku7rhjC{dZ{G0QRVbOUa5-yeRzzf|F~7W(z~hPy)FR-l+@qaxO3ykvp4P%bgY%Hl zt3-G%x`a#!>%gtE+pU`!wYEF^itv~Iz9HZiDI>>epY+|`6xXVh0o`^LEqUNkqs@r!ZfpdgFG@K81=OTlX!%H_Ebt@a zNWVL9!HAZ7m>A*W5=X?_hd6bGB)^fVN3jCub&`c+-10mVaI=JtadYvu6pgC>AYFTb zMP6xVkR@@KO1C5eVYVJ!gp|qBE4>-IZP!;^L@9LmjisFf@Ukmfwi5m90>$`6EHZjv zV8bxRfb5rHl9|RmHo}!nd6W)6qsM*&QzAOBJr5}nhxk;@?SfW19B8HkDf7hHaK1g-*k=F5-NOz}19(y;GKe_)k!sXmPJ+;UV+VA&1ui0|N-Tj(^wI)^ zQMA9GJT0Fn*qvuS@E-(&-{3ZU7K_5M4{iNZ-+uzznv&-vPVB3G)>BQf%0x7u)^kCt z1%@;25GHE@At1EeV?^&ot^zIDQ7kB;?hAYI>kxr|3=v*x1Hz(wYo~4|PT||JM=LdhG1!P)6V*_bG6S3nJ#6OGH0?^b#BNkLWqy|0D+_1bQ7MK->ZPk%ETE2{gbM zERixmI{_=D`35tCwHMLs>1m6)#Q=JSZl8)VBknTMZgK!`%i4OL*lsp9MnT3_BFvpi=)*ruOwloX$WFseVNm@i;K9O&xXf2H~=o# zyC9i#kX!*UNdJW`nwhIgpkc|8h-{tt0o)_KVzPUvUvjl2y_wVS(u#6Tg@QuBBc3+g zxfP18Y#&Rwj?0KVB5w$~!ptwF`@CMW@pj{S7h~QAVQUu zZALy9PgYssL~?Ov1qDF(Z@K0AiCm*Ysee$Q_*SI%8Mm((88ioBR>ahgGs;4M5O;Y> zT7r}T2t!eZK4$kEIrn{7^&hnm*KNK28_*5lNPWWs1M=x79RkZOxiRV02nk`^BRFUE zx`jm!_vp)`0qw;-{nOEsg@)~pl>~BgCc7u~RXpPfJ3;vI!!OWur_!-B0KszMc?0mf z=4{&&2#yn`I}2TcnZ7{r)WGPT^QbyT*Kul;w^@;dx8(PzU}YBWZ*XY0B&!mrO#xxg zgcmHFxu(j`g?G*Nj~TwpGOV8v+DGFt^Zn<`5WKjh!#-pV6ElVXB8pI{pCE7hNBGTP zvh}{fBje_=N;VW!Sv=z;JeXj=n`Z2pIpacAKt~Or)Zl30DX-!#RdQEd4zgD>b}8=b z&ShUhF_k`L!tFF@QlDG~phoy7-HJf~!Ml9~lu;DP)UvrD66rAv0NTr^A!uhz)vyyNn)A-)aI@+x%^2{2Ler5Sp#*R2I>m zyV0l($jN$|w0&ysxH(>aZnB1}o-5DlzRmmzlAWPQE#VPJLD=9Tu9cKvPk~6&(5?={ zcT$w$71%>r4%ThYzA|urfb_oiBKzWm*LyScXzkGLl;})cvPU#l1SLTq>9~kwsy)jw z4dLWUM&>8f5MHvyPGMPhpa>n{H=&Y^tMDBS9Nj<<#^XvvDh(p8g&+3|3cc@FEA+Lk z2j<|9Fi8Pm&~Qis5cWeC97P=B|La60K7uEhG2T>fJD0Xht)6{<;dy%O5Dslu;w=1y zk}5^X0!1wdS8#L~<*AgcN@KO~69TXr`BmFZavIF)x_WfU9S6{CGAMaqkZaM1iI z(f$!ohcp`th6{ip1IMWE*gFmtMVxDzE!pdSBVPNM_#fXASQ8%n^5ZF4U=_Dd&GJyD zwVi{qkF250APwh;=kg)_PRgCCjqjS3yp(=V!NA*{ft1Y3dv`$AAS37UDFtXg**^+XH>GRM7=u=Q=~g3bc`j|D3vv`yIIvUAcy0b4$GQb zmt36uC32X*v6}#848UQlAZ9WX%MMV!;xT8BZNL{wBs4ld$7yX7Snddgd;2F@KZ-+j zy}iI`P)snY5NiJ@l}ohF(T6B>5fKr32Tbl$PB^S$7&r^UgNbRPTE*H2Nz~PE<*t{1 z_a%cqGOrOgLoN9wy{MRU#be}R0ek=MwkM;tE<_bB0JRfH18s)i6ySKl*Z|i%cfG~7 zwzY36S8gU+S22G;oAj%;f!uy-QR!!V7SSb&PVX_aM+oSYKTfdbHI z8IzQ(6*}B?BTSa$F1x*GbC)(yj)lR|@3P0Xkv^smD>FH{sGPqQU`%Iw10BdrDV;9xI4%5E{GxN zpUm2CLtq7n3r+mn1C8a>6QM{7mZ_~n@SUBV-+u}qafsfxztFq;OQnHtv>k2Y?t78Ixrj0k42sgwoJ3yTQZwAck^4002G1 z$cRP5_?h>-wbKr|k%cJHC2Bt(cHhl^8Mq9Ue9C`*Gu1vwso9~uk9XGZaRgn_@)B|C z-gULjWWA7Ziv9d$`O(=TZ3tjy7(u`Wm9zG3soMa6G4f`3`;EjUg&ui`_Z|7eQB`=!Ml`8B z-f@Xc24CYT)ku1u4Z?J3*aW;n^(qSxF5sFbk~Ps%46N&-nDf@PfS z)jDE<=C2Qjyikvi{_=@ffRYQ&mENSQr45piE5#Z^TyuJZ5VH`+dZY`5=)cgEaO4Qi z_QqrDm~6_qc%E(miqpkh8+A=PD2N@9f>bX26?niuBlGk8^r_9=Iy(ZM?SGJIZv zvlrAMpluM`=?So@)u&iIVMY}S_i0oB^x?9=IRL257UOwMLrRZgRB!Y(7eje>9g{jS zf>7?Ws0k86Z0bBY zfgNi|04!Fy6Cm<^zV46PdMUR?-|!W^>tatFZemun<__YA6_ElAzxR6-G^6+8?3O)4 zA`-Oa!90R^Rq(=i8L9J&Z94{(>|@>WROL&R?cJrlk5>e&EF<4U8c=My1D1w)n>`U! z>3~R`rX$J#Eu1$kFtR){Y>6KAwT$*JtY|wEAW_7Ls%OOYDS85`eKNsygX4|G>_V=f z^R9^9rA1JHJf2734AASpnl;1WWKJvR67^%l^O|K}3ZB33aGM30wBs|^l(mX71Y#NB zlUitK^J7%evDOQ3F6$kgL?ZehLozz~1XMj>TYdw7RX*lQ4?nbx+e7dfMF>z=K&?1uES3I!qsG^@OBo*|*1etP z;9#)edueaZ4w_M52>XgqZ+)>n<`;aME-gYEY8s>iJ2P(@YRrGJ(2T!Kv$omip( zXYC7=^7Y*Eit<-Y&*tt!AiV;Om1eC!_r(ZfFcn!khS>pr1hoLzhLbjKJ7Ees+-@|_ zNW62Sun_avCs0c7Z9pKojf>2?(EuNc(%_tTVIhqmZny|;Q~gQ%=Ca<3ZaU!P2Muyh zi$Rn3b@Tl7m88%4%(^kCYC*j6)~Xoe{LTRuR7vs{4=osdyfpFdNaso?kC);;>XReR zEUOeYX{5PkfPpDd*ou^37zF<^B;Ge1EU2jQJht?&LyrvmDM_)5#@D}du2++J0a1SqJVHQQwXBE(jOX9m zd4{XA7{H2EAC$}IYH14#g|+-8riZo;gL`2gj{bk0i-0aeT*QKZ(rU;h$zNSr_hlk& z@T%)4yh~1-<_x%5?*{AJ&VV*FH|}Iok8$A3s7`@)n?as4upvUfF#T04bcyUY-C$9Y z58^rS0$BryhNmWPjB|#va(`D(QJXj+Z9LC`%VRaaLh0U3d!fpizEl*71|I>$sT&80 zfgzd436RmEtg#^okrYV8$s%{BKpZxXmeQZaY}KnW#8 zdtY6ig-(-LVZP#`gJk0eFvAi9EaaW(ul)+vM^DTxT32?padBdelTXARhL?`oMC{q_ zeHJD5G8)BcfdPIV^*jHwx1e19T|pBz!uguDmAJS=HMz0rz>D#GDA;F2Fp*1lU!~Wv zUI9QXjOPcgia*beR=oMRr}LXF>-84=mZE;E5-*LbV0^JIM0N(iDVp539$onHRr;GG z%$DI<)BgTFk%hXB{E(D6Cpl@6nhn>%E*zSDM5p4*v-3+ax-VyLU}bk_WKZA7 zSg(i4LV5gbRe4wN=`-VkuwAGAZmGp5pR8D0^7)X&<}cvg9+*G9cAbIzk~#yS$ezus zS52pws)LL6$RD>$yB!T6_A+>aca;$j6V3MscmNdou@HfE5}kwcRs zS<*#rmuQWLT(YNWi`A2XcE06h%8Q$kbEm#wc+H7a!zS^$c3^W<;X?ffeAJV`;Y@B^ zgU-ZYEn5zYA6mpB76Chy3-ne2!#w( zxFoixqxG5;VJ`7nCiXzRt`6z%iw9Y!q#WiTMr7>_hJrjg0MG<7-<|ZiCG6g9-fNqM z6w1RalrL^X`6T$z`qKAJ&z&#&oV_r8y=}+^GycH6laoZ#n4=$u!#gj0@Gf5d(^*{w z>&`VtNLy1dmu%mai>SPER#Xp2mFD&2dax|Xi(`^g_3m8vY~SZxE3l={?^_SimAc6Z zrK8*8&pee|v9_xVj-e@lR-V0xsATt0p+)@|m#)P2J}<}ZvIZ&5{O4z2X_(B1{kB4y1y51|w~CJ8~9B+Qq}Nt{yP;*^Wnpky-xdI721 z>6)PiEsv?4JDF%<3<`hT00`*|Etp8seF!uW1k?{iKK!@rC@to9Vpz;?B{{t8{K$nP zTNO6|)NI0`8z(^gviK3LT#J%hs}y_OZ;~-#m?WKPAVnNy;d&N7`H6pLI8$F-&NWZ8 zaq{BF_^t5c?{7UDz}K&hfYJrT4sQ%3nbs#wmn%%x}*vPzO)yYQ6wJ&<&K1bX2;xh0mAR zMivqL!3+(qXUxeR&|RS1_k>Z`2VGdGiXB^_EV)(oSJN->3kfwyVe*wsYAH+Z>GKo` z-$}dZtDoTw)V#xaJLQYW?KKPnl(J1JE?k$Rsh1yLwVOY$y9$Gar!+`9!>Lp}^IxKh zf#qk#t}S9emmQgRHibJ@cKr;A@4Qc=4KT?Z;h-cKIx^x*QbapR%7>VtZ{e6M_3i$o zj++%l53=*2lhUmjqrVKSk_9k6$mrezQj@*%5+q9FDK{tXA?Y`;*rj#_B+-^A>rw8! z!5e2$0oG55q(FtBpV%aOV2hs#_=dpIE7<+6r)x;*CjIhvwxqIEj51|c3G}FZ#wKs! z4+hRn>Wbe{mt}e`4WP){YO&uX}ffAYLXed?my7aPnZm7j0IxiLf@h7Vj7raWN{dUJ{STv~3psi26l zq`3Of+v8ZS+EaD%^*_vptm4VknQR@sdK_cFO4ZMBiOc}+Ui3G7mRs^W1c56x@#g*^4T8-) z`UQi~C%Dj)5K8WrJ+Jn0h5h!4?>-CXS2;g)KyXEUZNYKeO3A9oB@0kO;Km=T8Wc&t zfli)3{0~6|=noC<{f0qDK7kND2@<^1;{}`0*rMi5PFa-m0;= zo7~M#EH#(`+(y!Xmy2^1E<^T9FG)>P7gH!Nco|CV|YH|HWr~OzAe@z;Y2T(~!MLk_*uW>P>9O!BU4Xwaf zdOQ$mpm{0lJ!`T&9#4d_$hgWv_-LiGulVkjaLI$!-W)^UyQA^?*Vxe*O6+kzO|t9Q z-DJt9jBeveDdvVzeVn|XXuW>$a3l>UeLYg7F(~)nD4{uw7_JVOGV(;){hy|; z^zfc{SUlU1XY0KyE6~Ja@{HFvKv1bPZT+QV5`mp6Z+{E1b!fb$kBrQQxna+_8=5;> z9F#G8vGy$P0TY0C7tBhJPPADiDse-%-P3-YfbLHZgB0-3Db_* zsE~~>YjBgCL%}(s0X0#WtSR$8EleISnq!wSHd04o$p40BN{gO>P|B|afMN!w)1EAryN;-373m@xU#ei&^!bM=e| z^W`#GKx0(<0$%4XUptyPeC;Lb(QkIQqF(BrYzNjY)jMI#fUv=&QsD8K3(aEht5^D; z5L6FuKIl`NS1rY@_osSxl{E9vfRc>Q$EO&akNe`wNJF_|_KMKs~9*s^!V5ziCXJ7~##|qmK&=D|8v&Vr} z5IE0kc5=fdUjW=)EkHhywSpH(Nd2stG=>>!qh@)O(lE!G`mYq!e8=Af#Eh5bGHJZw$?CfT=)X`rkpbjQHD{IbvsQ*Ot$%w)N;K%pq zRI{!mU7l9!WS2UAMGEAAD}i0W*%(ZS?lt8-^}}cL#p)sOMRD6PgD+gKsPLtSh9}*T zclJPVYRyWGX@%EV+Xo8$CK7q?I&Gbycvg>}%0H)ZWgJ_8Bu~3ar@mD!y5rT6d7c*A zmAc6HfZtp+2OG+ihna^aTyZ8Ab28;e*65xvt^VWLxD z9vwbgBtZ-9i2&J2{TnMQg_@ecSV~b^Tr^xaEGUtcbihnI}v(TOe{Mr+cN z7b7b8-78ic1eI5Gn^4N=C|s9NvhvMV(nraRJ5sa7Ch8{NT!gn&qE!f$<`EVIInriE zkVLjP`LH^pX?pMH*>&+{fao%@kdMzh&t)6Pt!tInqas{Zl7y9S%S$e224R568Ub~s zG6dV511NMfb1$9~3NFly(bUe`8(gS~a`I>s zBE~r|C~$%WngV*^&%dENZ(I4hU6nU%gO#_4c#eg9g zTSodYML=IPpu}3w+lDLvjlTBuuVu-7kqoJhkA9RUrkDZ2EJfB!a&0UbX`=No{5oo| z4J0kFS2mqcNy7hWmo|lY>an$py&(_$6a3vj`*DtQ8IB)XerXTwt;XdeDln|AH;^Y^ z2Fc#x)YNV#0S=n_x2=E^yrHJsla!$&R+?Knq^e`s4}rQ3l{ib@xey#l=qm1L zK=(DCp04{Wo?u0vw%Pi0-NsewP*A*}SZE@MSHpUjZN`jXkDW>Uq8nKSR$6QcM+gbu z$2l(#t_cR}YI;1dz;(Tgrjt9DW^2h8-23+rJw@?_X6Dbs$L6$pEkLo$s$m_t1a`mQ zJcW-35A)PDb!gdHXuM$24eDULh~G-t218(#!1ffUV=PjnjSRaDykq#6S#1Qw=FAWv zj)!(;oVK(qf!xwAS0OEMDlK}C|B0rxotLeeQL;^ z(;xmxh$8Kes0rF-yT$&kj3WF0Ys^laSGt@RS3p04UgUiaP0!x2RX$xV>4Y`G@{b#N!QeWmV3N47srJ!|x zn6rHbg;6m~XVqg_e>gi_axkATckEA}Jkp`fEBExjz}|f~MEd_zt9@*oB#ej?1en;- zlSoupC%2&8rvEFE6>8#ncUv*J`#GQDY~97(v&#J8`LERdZ;IAvtH z>G~k~^hvICFt)E!Xq(vnG8IB{Z$W0~ur%3=C@_3>Z0Yz0QQ-EsnWOLDZR&eUO)i#+ zKU<|cKL}(#?yFd(`scX0y&tp9IgIM*{YS!3MJwz+7k`3K>u@Fvb(-(tN~RC3*LE!S zw!FT25+ENM+FMy6@CepH6?dpztC_Uvr3xMT5@%7Sdz{i^Qu*ZVLj*7EcHSAOf{j+1 zD)Ps2+Q;cdTk-0+d&=tzy-?~1Xy^{i&;RM^2|K&mX1_Mxcs|gTP&)GE#VC%ef6enL z(=u@hm8#FEB~`7FU!5%nFIER+B~4UXbN`1**|<*lvhuNaFL%BXfvy@^yxI97Ugc2*mS?(>rf9Ix(GDyQ0wp}Nk_ zMs5ERA2f3w3KNT;YVV0wRN77eCI){t7Mm7_p5*3Gm|L+@XP=zk=1rDDK}B(ZqKqhg zLjO*0*NqmHlttJz(N;RS{6D|KKd(pqQn761*Z$?p9F$Th9=;m~2yxj|N>|r}GUqD+ zngG)mz*wQaV+t2Q-PqzJJS`siFr~FZcXPFJR3ZM6O5`y@H-(SE+FtS{jr&r=zPkv> z^I09adBmIJoa(_}A+6h-gd*H85_1lp-HlTyIii+8f15Qq^(1;Hk(~6b(!{FX`+Oha zZSR_}4dEw+KQJb2@JC-g|1u-cQ#wCC?(S7$M7a@^W$77?Bbx)0&|&fQdfC}x#DQp? zJtFwMI3kA2rl_Ae$WBg>Yj#gzlDxT-=iO2)H-?e)I-WiQW7oum^S~p?1E8_^q`7(Y zE9%=;B%PC8leutPvpJaTGM5K`pj4av@IPf;*5*ncbyae1(NXOeFSwnZe^D0@EME)w zDuJo5E8LSBbkAj^Hrcb}@97b_41Q<^Z423xbaj!6)vl!hDOAn%r{LCOK8gM zOh<&^hlt$4wE$5)oz10C;=q<&d4IU;4=%g?;zcS`l%n_Oe{Dk^$OJ=uv4rzoV~36@yzXU*UBP>I6cV{c9dn3aza9`^*)styaRe| zU?F?g0ufqx{ErnY=np=>e@#u*Grad=joR1y1=%ah6Af-H|CZRMi=sDWYD z_5WP_(5dblOHs^vGhA50>jkfiFY#2}!59x@BeQD9_S9k{-*Ss+I2f2WAK>-(7E9w# zvRg`Z4Jg1B)FCOdz0%^^P(Hu>q>8ytwmKVki0zuId)Regfu9@XLt8G2KQbhPeCx0= zR(`F-{p;Kz!*1wYWp2YR;mwi!A-b%A2`?|!E~)1MCL{rjGZvdyIWAh=+V74G#j)F; z9ti)A4m&^gaWpvB9lFx;m?Z|oea==$$)dC45hoUQKn>!od?|#A( zxPt78Xb1)trG=SAG#r3k`7JeMQ0ct9MXfWj_KLxP)$sSAa zwAsVDp2Y`gK4+!LAr9Df?`H+VG*?D%DT8Ejtzj-qs;>nH88-UZKL0*|f0rM80(im; z@Jkjyf!rh~FR!*dDVuxK)h0ZKmh2v3%fKxR)SN3V2|c`QwOLUNg%3{7dsgQ2;7r{= zH7jy^PG@D+{^F^G25%Yw%5^6v3pG*7Yhu>_Dr9huLe0!NFIllh~Q zvhw4)QX5)5i`%i-+5>p-qT&>oEvT=Pd+K9gz7U|9sP#$vBYe;29r$j!>RXP*b+ZByiwp3)P1L-K12gt}G>kzdO9;9Q7cU3Q z1hge+L=G%6)l9sxL<0wyXnf=RY64oKZ4#;ej|(s@oGHPiP{5%-zzY8PzR)P z#}^I?cL#haEqwt2)5~ir3%t|bHOBc`&r~cTH@1*y1!m2z`82}@&*O#eNuT4@jj5@_ zU%%9H=k{I~SsynpEYP$?y-2p?eUl8ra{XfDXK+zZf|kX;mb-RVqeNdBAkyBw&Fjm2 zMe0h+hI@%;=HN@-Z8Y(d5lEGf8C+TO}!dn?Pbc8t`}Z>D)HN(Qk@;b zdg@-PYfYWik|13>!&@jFRAcSx5)dQlBRYWq6WBFx&M2dU{YOE_Bz)!)z`oT3;l&2zd| zI<^*98A4=^qQ%L+#6EH?k`=YXy}lzhP>CW;8$SIJiZB$Z(;YD+wWiEwEuN7Fv44rhWV?lhqk)HqPlzD z4xYlgdxq_cwyzsNb*@ic1Yv5Kj)VoZV9=s*e1U!{=1b}Q0@di1-Q%w*^yhM6nxS~2 zY9EQD#=mXpM0Cwt=wZoy;HDxl&=Q?8oja5GnD<95mw7PY*41E1F8-uF@2#`b&-L}? z4iDoLlwK~+d)Ia|rN)ocr5{|vdGRbS`GNGGr*S_tv0pFh$8${gd zs;!Sv7}(iiL9Ng;OOl_+lqg&oD%0dzsaYGEa7d^Jm(I=YF_}NqroHE_m}MF5$Jk2K z#t`D$2sgbjGDEPV78!4@gZ^>F$Ly15EH*u%hK5t6=Jt^W?Z*LO+Q4a zUw7Z`N8EZO+cn|ie&|s4_Y_Q#Gojun#xjZcr)9uzhA}V_f31xnpHflcw8fq>6I{8a zwn)+MOLR9$31l82%_=U3c9!=20|}r#y*c(Fn;XM3D$7!o(hvg^qG?g`+b*7WEjB}$ z!s+p8V)UiVRezui#yyvg zh5{I@EB(@$(QD5z;p2T>5Kzh-iM1BK&S>5^Fft!ByM0!x>(x;HjVLXlw2|39(a`>-S__6(G1&(8%O>ZZbu-q`Y+)?i8 z3A+X4ld8gI$BlfBcZXo5)ow*j+Wi@sYT|d{^#AAG-Ge{P3J^X8hxU#{{+$v5-Trhp z8103#07b)jr^=PHn!3MU`TBbRYTK1`Ji{E&Y{U3?7=(!R?tVf^CG)r>r zJM$dO<=s;pfX-p%+c%H;Nwhu&;b~uZTjzQ@^OXhkg^R*b99a4sw4tMCFrO2Un3tDp z_Vbj*`1f%uIB8aV88cNH0-uY8X9=SM6Vp|OcE{aM|2$gG%WL>O`h=D2s*e*biLCTS zv&#O*{UeQlmT8c!9V*21BpR_~L5uWTeZIe(9&(Kl%v zFxh|HOs+=he#%uW_TS1??l_@&2l6X#uBAKbu)o*mOyFmyP&WG1|MFUZ1S^iw$7nf& zAxj+mPYLN$n*cqBLRE;T9${NGZsX=<_OX5_xgY6Ht1*H!!x zPO4%P(4os7M^tNIKg8BU@(_=Wy3rE9D9bXYzKcv}myixefRJK980N#~MyLt((0a1-6XD~wTNGP|(UJW2>{4&r zc?dDm+6+!JGmBOm5VGxIt3L}j@7w4qgtUj^2oc`oBi=pIfM^UUoEuwfCODBIb#?=h z%VZ?Iijv>TTAq^67mcR4atpsz8?a!T+lC;~RN0Ar!!tbbEP(Mi=9#Zr$H&B~514yP z)U)xHGpA+`M>6P#O>&O+IHqVfJ*$L8zD?nVNRe8^`b$bO#`I}(ROo$%$}kvJjDLsd z^!<#AXGmV&GcvcIfhgTO3Ewz0(^2CtKhGk!{HRUwJgNV9{~%Ej8Cr7$CUl)Q#S|8K zAY&ifWq+&ITWF5)W=_i_R@RVbDfdJJSEvip^ZtBEd_``;Ci*tw2DKD*vr45~4r);~ zOcMrB!HqQGvJuIMTW(e*mOC}^fee_djgmH*Zu>mJp)f9P<*fzjXQKF`j}!(e;?Q5q zd6(@c(j4XQ5PKTli%OiDKtFm$?#Dn#F=Fi9pv_F|Z|v`xdbbsi(ZTcaw~AHV<+37t zw7;jP=v%?kx=$$8r1s!B+hLEONLaf|r&=%@o*ea`OS1m@ zN==u$sX}9yq(RBRt`K!ETSX9jzZ;x zu9&6cSIOE(A1DFv3Nm?LHR&HWUkylgS;!muM&2j#IJ-lNL5=XE5ziy^Rbx2HVa{8QNO4Wh5kC@a4zR9V zKa^w%H(rlX0P>f_-qj{5d?iT=nZvYtk?V)1Gp%2qX0gzrHa$7#u7AU|Lt@A(c+@op zTWqwNEB$caP+QUrpCjzp!g)eobtAi{Fp? z5M!%LSB<9AZi{+N1xQi{)U?F5{?}IxADs$wtog+ekEDaHaDz1deP()5{PFxj>MBCz z%@6pfAJ`vNVG8OglGdunY{UM+BuA)L>POT2X*+?&BKj$Rgn#KpG?`gNeYs4f^g&Mo zb6I5X>$&OM7?wg;t)`ep?T1g_WGO0MBKKpxKKzWwO?YeSO4OIJ$wk5{rTTI1y&aHGFagTX!z(i3e(v_^!XU?Xs%m zcTbbv+zC>ayj(qYeaH+?q7M;&j`{2MQ&GaZ>X)3P#o;eqMEXD1i`*?7v?x#I;tqA= zlpcfEmG$RZRl~S$7|zy40=L`}*WeL}e}DzT7`|oV*<+^lpbtlsK$12fH9}93)t};y zhKn<310)Vfww{XP)0#D7x*aHak|ilH7o_?93?W5GY;w(_nFt#bvFEGM8-ZxXz^=Au z#fQ(Lgvl|f1HJ-=;0squIbeqLoOkTC+7p4?^eAB(s6;20wy$rd|_N z(_EgL&TMBzUrNaYC`h;o`NS5a0tblvF{%9gZT6XAINXUv()TU1gU3U=tNEPa$jP&$ ztSM%IqvT#n=03qe+5_0H9Qb3%SLNdQqt|W)YI%4x7xcqbj2|R(&N=+G3<6|^m?JXK zC*y-3CPL4k$=SrMkk_gxbBECB{ux;Fa932IBnlQc;iN}JE$ZnB^Z6T%F{_*TNb%#( zf4G1xeYqS=a*_i>^mPLxmyidk|MM-iG!69lfTlJDiBykDcD`d|3^7?c zY&-Bw6(%=f6qtF`+Rsid%J}am=2!nFx9)rl3bLU7vw&t4fBP; z*NLi_n+_Mq=a3oQ!)&$Nd#}i)1qq$D`+)BFcfMU}nlIq?*Qd4Ry6o@G=%ngE+1ZGL zz;wpc!uKA6_kad-wLch(M!@VbJ{eDXJGv!T@Kg zC{)~wwcH|=pgt1%x1ppd2ciO-p9Yxx{q^#%=~!yPO5ixx>?{LxF`#aKEQx{O5xf@I zaeQ(u45gg(H?cEVp~vq8rj0r{v#zEE-ZP=3y*;-*hpu9gQ3d{Ps`V%_G?25I4&vnC zZ>f`KH)(Fj?`_CkRhVApqq^ybK5tGC-jNW50mz8Rz?lb+C8sa*=Gt|xwzhVx?odcnY6~k(p93wZBzec;ORbb#jO6KgwT5h zN0I<<-{e3*F^q=q)VM7XmtU{OsuQOTNoK_N=Wb5&OPvf&OL05eCB-r1pB17*3-Nu+ z#YXUQUU|C$WHCZ=nW|oF%m0>HVS;7AV{i|#X|`b@ zb{;V)OQ&*UDbE-o4>&fL^%2MJzrR!3%CF~0vnU}b;x34xKzS-LD=)JV%E&nOG%1hKQ(?#{S_SX<=pJYWWDb&@)Yz=`{&Ahc zQa8Y$PDbHAAaujJxR%kv6WSWpT)@Kcyj7*88Pdf5I(JCfUz1~NExkaBR<+1FN5Y$m zm6Yoz%;G$-5V8U2qAB2+ER`Qb2LkSg8$nww)s5=7M>tzFItXCTooB_`_o4*;I^V|g zeY`exfZiV{78556nG!7LD6CAOyMmZr1G6JIeD2uzl)z}1NYTWp^{#}Td zh6frzG$-x9C&tF|hcX+e=;4&5Iw;m=Pk)RM!zfRm)#%<)HtYMxcHs!M-uY7dKuTNE z1LUeSwfp^sIp}T+8@CDzm+BST+S-)(WXh_>0_3949+%O;ME}eE6Qj3X-6+LAAnjUY z?8aHxlFH&bY%y}kJ4NwTqAT!DNKBT(4)47iwWpE&(IWKZ)6ZA3>@vZW5p>SAr6X4V zxnN^E;I`QwY|1Y5;Lb{sV=9V&EKpRmhntCj@9||7;gRq|&u+Y;t`vHf8YRCW$^KsW zq3H8qeR7bPt2~QqXGl7^P9r8SDfNpYfwhs8IsFfNoPw+uHx~6!?}Sli!@>kb(;P`a zc*o7}oT9`cba&H~V!)&1<-u3PuL39aod*XyfWb#f5 zy!bhUe2KYu#`>$yqbpu*d<0F{qygc*g~E=20KQLs{*g?$M3bx3Of;5U21=I#QfH|z zr_Nv^)+s5$lk5KaYa3IjB{~M@nURXc_KxT-|&-JI?F~DI1K7t<)F&*7+ z;D|LeL|9jd|Mu!RZ1=5)%4}Xn7DKdTCqu54PW9X>a<-76LbX zpO4lTvRW&*kpxz#PQH{?wI?$*OE+z=tFu#t-`sO_(@AlB?`uM>uZFq*hm(^n>&|47xQv?dapc-CXI!lGZGoqymtNcW~v`$b0Vkw}>ao zd@IIY)Gcdt@YLeZn3!M<|9z>;s;<%lWi4;tLY(2scvGs&)oA)s*zdmLcFztkY>3+{ zH*OfNKQS0``$7aqEEcFjOX&(Hs)La*g_@sucfPvD$ypW_$&2hAkl_`F8grE2HZcx+ z6B;4)$NOH(`P1QeG57H)cyMV<$_;bzau|-nAK@Y2w=#4oiclOk;`z3aISFb(Ih*8f zl3a^jpP@$z2ttMR@zx(ak^LR-@zs}`0*~}`Lo%#vZNR`bPH1MJ-2Xup+E7=P!3MGA zsxisEdT*ahHPQ_cRpl$jgjtpam#bw@{U`Pj)-WE&E$0=d#*0X{OP^A~(UqX}i2MU_ zlFzw!x&HIPIzNKyv5w8VrP1^dX(oUCIN;-w8*&nqr1x|`J)5n5h%u?jkYE}nj7q+z zxGf>bY0L?8`+dA&vslI@cv2$8dWDcTH`MLe37kBC{=9K~Z+?)J6bkW<&0-_8m}u6@ z(Ta@=7#S94>vpAF&P6n|`A?Mfn)eP{AP=aX8yI@CF`EZ{dnPQ2Wye%uU8u$0Tr=|} zzrev0QJ@)^tDoT#*fRf`J}WRO>ZYcv@7Yk!at4>k%Uk=k0-GP&LC?F7ABVOLX=>?A z<23^FzA^rLErm7os7XC9HJL`(6)7om@5hvLto&D^Fks~(*xb-)#wek|hf*%NxwysG z2~86LUd7U(^~qoT1}Gzz>7 zZ)@?)LD&?gNm)iWP)qb=yLflmn2W(^lUKIx%BTWb5Unz`XSlk$X@e=QtDlLuhVZD9 zXlQ_|I~4F56%+!t51ByDo1fNN$)w zOPI_GXG6JmCl;5!7!WYZcB~EP5UJGe)-(>DL0k6iqX>?!E&CfJHQ#5+T!l&iwgfl}7RBc-?k)P~y4o^Oj zwc(<&;X&_!5@NmQ^3dZ?+8n>c1dsk_uhvxb&(t*x?j$HrG@dWdKcP#O!4Aq`13$Z( z%pZu0>uKmucw%sU-J45LSYRp&@(zFfa7{GwQKNmHIucJDa8^2~xEJR+&nP;f@?4F% z1$ka#9(L68(h{?41*tSD2C z+VbmSim<4z{@isOal&R5AD}8Y^K86ot@}K_Joc}x)Ubvx9e&Yl`Pp&2Z#!9co0BUV z%t+!%XeeA|{nA@WQRTxM%+tp|U1e0g-4CP79q2Aw)FKD%r2z8&I&XOeiNcfes`wY#k7}<#>rh^LITE`kzxRIsivX6`eCQI4iWJPjA?cMPyjdIwhDi3&4b&9rKU=5?(upX!rP)X!u*k~ z^JVo(xQi#!eEP;y)v$5WrqbiI!O5A@ z*EHkXED#Ig`WC680#F2t~nR#UH=DRYuMj3FG{;ECa_2*6E~glloin zDuN~2P%(^FbWaxnaF*rvQm4c`Q&)J6vN9`LPHN~7UlNs=b?9o-Gbw2$qk6I9c-KND zC!b(nRUIEG=6F@9Iopkg^1Gh@E7!dK_vq|(oF*ziG?^;25)AnXXGc0i8ues?+2)}2 z;g&!DX<*CqX1#feEscxz@R%GO?z#QE6 zvCCfd2VO-Ferj@uhm(~(fMv_|k8JXx39^1;WX%yc7>zlapC*hD z6!(ZNoC2#{DRk3kKlWenbBw5f+^@$l+B*b=JcRk% zzGBc5cFmbVRG^wCwgqR{;U|@(hYP=r8}z=Db<}sM-6a`H`K5PjPf& ztZp79owYXe;Cj9$dmO~D>4{LF6}uzmaZzsBQzt*&|4W1`U*;wn2wr%)8F{Qa@NIzBN5nYwSuB&$WP`aQ+h ze|g-&7Uh_2mY26c@EU*rR1d9^ZYe;b@{d__b&bCk(m(%85~vexRyx9e%>uZ`ShH9B z>~S9V?;o#LV2@%VRnV${J`04%hFkE;>(-nz-}}`#uj~#c`(Qil>n&YAqDRdN0MPGo z9aWb4vkwbJ;)j+fQD?9B+LjG%Gar8LQuOm*$cQ$6jUZ`#EBlaltGhURPCl$DNTZ>9 zT3oKl)wt#y6Wq#o?hU*1Gywmli(tKXnh1fo5@6J_r5#@}rudrsP!Qo)jY0j3dE_s! zEBNoN02nR*U z7>`3=ks}yO*RBgg1}KO6O1Mhof;Gx7+6($6d;nnas;fx&)mksi`(UX zb7@7S%ODN=@u>WxCoE(GQq?nsmqxTtq*g9Hx9*0EU z4~+&>l;hLr82q>SA*o%MrbQI`j%1XhLF|-JNaJ6T>!}o@VoVk<&w_DTbrguH-=XtP zpdHtabpx4TAiQ$JCGTh6J`N7Q#`s9}eUW;@TNSFk=bDBtbR+Brh1V-9uK_@>_&Hu%mWzqn9Im)HQJW`)@_x^* zAP^i}-eQ>MzUd&_aQrGLbYC%M_L4E-MQ_ChS}+$0p%k=*E8j|3+N)OB_6Z7^R*)g@ zzTS)lY9;fC+rQ0;!^@A&_;`R9BP^oo8Ws<&h6c_Y`ohTkczA!PYd~vtw`MdhU)qsZ zZ~1HHqq-K1CMrOc2Gf}p zvVO?!EXu+1t_EW^;X)ynvb_AKCtO%ac4+saJzznF7~2)l>=O%~SoEunkh3HZyhPFxe%LDr+eUnN4?P7(`(~X36?~CqA?#X}QQe zdJidYULb2h)RoeX50XWCX+FJ|_S6CDN15*D`K_NbjF)*Zq$6R9CO%>Qee~SVnN1+L z5}{GX0RhWD_P5#MS z*wP1L!*>!MRv_Pvsby;iHXVCYN?wu}{ao1x4J(ncGHZVEbNcx@*5Cih;+j}E0#T{- z{g3@`86U(p!e>cf<#50tMz%_<_>TWMEA=o8@BXZ;I&X8ml5B1SQ+l@{E>IYYnIS)L zc?X-nyTZCTkS+a%#m8#_n>IYd6Jz9kQ7?sUnB8BvyVt7~TMPZcB^0NApLGZ?+BQu% ziW46y5b&VPXjDWNZ}$pSHo>K);np(JMN|5M2P1d;S#3l6#i>Jv)!=kp9uUp{xkkWG zcG@d;{(e&)X>P4p1svC7f4xg{7efEu!UFUsXy0L-{j4LF>eb7(e~n|zfypj~pS>Xy z<5kG)8G+ZV(mK}F20e8^pFaGRiVHTK5k}b+S$mvj{57bMkSo^ac>lQW1|e)$@Bu-B zcO|em50Q5;h0<{gbC_^yxJd|2rs(ynjH<|+UltD_+}ocZv&4%tW+^TkmE$amJMg*SEtTC+ryrf>%@pj8_)YkH{FT^qFo zu6eB5qq5&hzUU#cp$zAlrY3tNDs??z>5!3Nqko7I>I7hK4<_>S*~mTkAZNcFCW=jG zK=&>V$xjk%j1v<|=B8Z#M+4l5$8U0pHwTnr?0qV5(8*}8$f!EM;v`1+`QfnZpRf)aWa($9_dTwKMpi)*0(x; zyCGLegQ$5aL-P&EcY%NlR)=y7_=1a#V2_w-sU~K1jF7;PU{#zkAK6X&p`OWVk9|0x z#KjCT#giw5zL`>Z1kmu|&!EeaSl3aIVff~A<{K)5S}EDG16 z;^*Vc!Rr(uKUK+_7PaH~8jI{+xYyK_GQB1gydJCGzQ{6631|N3?l9t#Nc*7^KhpPT zUbnw2GajA+xgN6~j`*c4%bL3unS;?MsHK{-z3v;AST6cVO)&NOY-?;pzOdFnBr%i~ z2!~*kC(EA;;r5=g5lHJ7PWo&t^#iIlA0YvN22cTko?qb)O&El}v?Cn9TuJ%iZ!}DQ z6n>2EfNxs#z1s+=KTaZVXa?#>_>d>scScHe1u`24K=!GuA_;i@&t1{0CUPb&0ye4Lycqq1DTcmPR=9k_- z++VdY6keIRcmY#Mcv1{KYPpUMo^`rhxPoL(3B8lR2wmP5w|KX}WUbB~9T7|iyutTW z#PD;3AI6o?09@1_AapyAceZxil0q=Q&Of+xrPcFe)IYGd4sc{HXmBFw()brYr}Mi_ zRzIe`vpGhS%SM9NSQtdCWU7)-uu@n%4ly+;tE1?GQjc1vcJoVyqakf2DT5&#J7-I= z6Fe>$T943d#m%^z^CYy*y^R50+R0ja?pqHu&- zh=&Cqp{KCX*?cHmE_3iv?RNM}@UfDHfDAy63Q&;0K9^@;?)b8>o(?2ur`mF7D>c*k*L#X*A#(dU_4*o%17)S|p$uKK| z)HuW)e*YI+b_4RpvH$3XP4Tc52cT90nq6_}fCaClTXAVmPo9tv;4d<&Y8`Vxi|#hl zcE$9JHrIjSl!)#HI|0HST1Z672Q^r~VF65$>5kkpjbiyOZqDW_tuYAP$k?m#T(4Do4gs9P{Wuf<3EJwG`-q*u7}NsejXo3j_9k!Sc7n20FC77k{I#8)Z}z@NiqLP41};PW+Zg!M&qrbE2`cZmsovqxols}z>;C{c2kE&U$(n{3P9+xhtrcI*mM8m$CqG+mr&vj%*Q{(J^> z0D^A2c05IvpvutvOBjhnP$w|P3|xGW$_dHXSipO%q`=Ul*d?qu@WFLg(EpDryi7?+ zjX_CKqxMCQi>V8{J8V+Dt6YC%WkNE3JiiA+<8cZOhq5I8&sl%s=3K%-u>C=f#m=>X zHFKQuVNq;}3OxxqWStKeyt7NKM~51%L10?R8H-WP2&Y-auiIkvB%=Gd_F|9E&v~aE zU19GAIy_lY?0RpblR&P!V{)4?YDZ0uw7MoLU3N|R->}D+)Ng=3BgD>BeXks51AnJ0 z3o-nib1~jg=u+%5#3nTaj?vI_p0v&0@b6#!(&Dp2_YyfR2|1x#1To+4x%tIpS+0#8 zLe`|fN~S8*3Ea)h!6b+8u0hg!pi^gjxN^L-D^@x@8gXD6KI|Nekq8(RcxwYP1 z512mVn*PN&rZ6zpNF798;=hrwTyvJ724v8#QaJ>99F9(}N_t4+5Zx~R`+um_ z+F+VCFrMqEIh#t~L)s<7TqP9`04Feu>26#pe0BV3{!(Ufs4*}$q=v>n?TqO)34u_= z<=FwwGvSu5{n{CxD=iUqndhBtc;nIo&o&b;b z2ObsXUJJR@tRfvMWYz(Pc$!BvLoJr=;|Rdn@2Uf3M+0S+7$YO{u%FM#E6py9bQv@Q zy~PN`%>DHXRM<$~V&ZWfvktHWhdO+o9OG7c1T!-_FRx&w`Il=LrGTN0=L?;9mo#p2 zndwqHX&6-rk@bhb>YO>UlTjmT7eFDod$sUV@kNvHGUWxDFST)NE8ChITOJnd&wPm)IsZ1@bPd>*z62f8)3i2$!A$M zWXoQ1B9tXL$ZklMBMt`R+%Mnv`+a|Ze}B(k@67wo^Lv+hp69-=`?{{z&hgG?ci5{He3dd5GwC@%&c(jGFaZZ&5fos=*9)8le zub==X%q?+0Jr3dC9zZyVaw(0SH1(uIq3IN&C@JzM;GD8&6Ewv;l#E65#G?$A|bEGr7ccf3OiOZEDiUFMw*oX|6C2poKwoG?0x+ z4<-i%TKBKK0`A+AVM^#t;OGKJ^M&V-N|$(Mm(NRMx!aPDWArR7FDz@^{@|UQ-`*ON zdwKX5Af>8{_C_onUW(bwH~Z}otfPKTZr&*$!KJ%TWysPDSiIas46qApBy`}FupWoQ z$r`FLfX&dp*BN%xl?Rt^T}5Atw|{&c%M+<5NstGQuJu8_`QmhL&(nu#MRv(|Jx?%W zT_EU>Q`a_>;YX7v=$LFN5#v6Bm8juhT+wkZmN($p0m%5v3QY0blYkNbeyGfJ)9CqT zOUxXWmPG1a1*vIS6IcB`ZD%7Im3(WJj)`N&PFlsfOH1De zaGJ>Q2k=D-w_X{y(${I2{cLk5;NFZ?Vw`8MDM9#SwX*7xm$^xGD6RjwYdg7a(5>d` zMX)K$&qhgf&n~erEq-*-_{1Y{Xu~wLl;6zKyVQ=ST`C_2Fp$6rphHi(C?}V0Ye28{ z&oj07QueYbD>YDA$$R0HrOscKlqVEoTBnD?UY>|oUC?ZI&k-*cmSEl$Dt9Z?^kKYg zi?D~}n>ja)^3d5*K{QCDLfxK8z(-whaedp!cC~H5be>XI_B3jeAwGDz((9+CYe^Jh z7HSoeRrtAa2Z}j5UAm~s&0L1JT+p-jh3A9O809tk9sW}syI0DCa5#aHGguu{n4Jus z9p{TxLa#(+Mrn@yY0uj5?oClxjt$NO^k)i>A9pztp=uWS+97$?19*s+p|h(tVfJ?K zt|Y?T4Cx3gT8Bm%@U#Q)kp)5VbRJZ_lO0#K)~|aEh;{vMnKxNCayQ?!(I7!R6|^od zTdo&dOzN`X@v&A)ejWDV{PmR$wFdmcR`!qb(!IXjx0HJ@QaW(AW`>5dASw%4T7)xA zQZuUd$9a_-fZM*`UntcHdFyF=*HO{%_n{Xk0^aD}4c3lVk^mU}Ih?no_WHHPGi77k zbARhV_a|!CPP0-ofnn+x5)cab)g~TUCih%^UWWLQUN;QOHB`OXm}>Ega5vDwV zCQ@iT)rjMyE0`i@ok_3Rk8zFoh21rtg=9vs7HI+z5XfLAL#DbI&P~8lNhIyZT@Gpz z&9T7j7`0g}Z`xUf+65OHze&v~@Vn;M#&2PiDija6Fw`)Qs%nP>YhJ&hLXQA?Eu%0^ zk)@tI%5OlOZUZXLZ#B_#aL_JjkD#*l97?{vrsJGxxc3Cj9&YYnK3sj1w1;R!RZcp) zyx3UjfXU~kLafU9MxoV;{J~|tJ9fF`Uu zDIBU*l{K60O5;+;&- zlc{%@vR$A_t!=qEw=jrtS3+KRZb6K@8sOzE;;Z3g&(GlPn+|DKQUEjfrPAiDa#A^X zU>?=Bp05KUe^V!|O=Xr1<$Nq0D!jn2C=}5j5G*qoTrc+?Rf+)(k-y3a6VKJb2KR-x zXXUK-af-S1?FA7L%|NOpno?|Gll0t7P*Z}7h3RC9(Ic(khMEF_7zqb>D=;vJK>~mL zaPlE6A7@yrZvNzas;A_kLAEx#a702V*Rdt85a^^eaU>kCRee64}+!DtF;P3tN2#7Bo_;zlUvug@9X+@+>}T5@#9f=$n1iPjtTyi{%T@T>#1Cn z{oHN2l)CwQy4pfySw4;e=Zsh6<$8z8W$$+7ahJNX9uhjlvk(y}YiCi2g{c&%eye?) zpD(7=Zol%$>Wrl-`mUt+s<^pyxQ&qK&L5fh#XK|zKmDod4oUfTLafR3MbQ#bN2>x35Zh>5j zuryJ40sz!yXF7C2w9K)-nT`nhCQ^fh!&}6VvqSw6ql9keuDSUI_6O!AoXr@Z+WqTp z;f?^ZlMjoa+fKuOZ($1p#~#x4=Bct*O|+WMaT)jJHX@b)C{zd}q}LNqcb+d7krv}V z<2$ph-g_C@fvIAx)jAbg4MHS=xT z-O>s#derYWcPzTCd*OUxfqg}K&O%8^qTl|(N)QF2a%Ob%)Aq*88uxa42LCY9BTmcT zG##aP@iKb8*>p!+_j#+2NX;SEC@6$+f?D~Zy47nfUMdm!1{Df#(B9ub1?zA6^5Fix zEsNzs03K+39PpciCIN8L!4_WXz$^ehMKb@#D+85)2XB-8hUJGFcCh*1mK6W*^x&TS fZ})Tug!_AJ!F}ur1J5RVke&>5Oti}g*YExVO)jBk literal 31646 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 diff --git a/manifest.json b/manifest.json index 48cdc43..4e4b8e4 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "name": "Privacy Redirect", - "description": "Redirects Twitter, Youtube & Instagram requests to privacy friendly alternatives - Nitter, Invidious, & Bibliogram.", - "version": "1.1.5", + "description": "Redirects Twitter, YouTube & Instagram requests to privacy friendly alternatives - Nitter, Invidious, & Bibliogram.", + "version": "1.1.6", "manifest_version": 2, "background": { "scripts": [ diff --git a/pages/options/options.js b/pages/options/options.js index ed9c70d..a55d032 100644 --- a/pages/options/options.js +++ b/pages/options/options.js @@ -28,9 +28,9 @@ chrome.storage.sync.get( document.querySelector('#save').addEventListener('click', () => { chrome.storage.sync.set({ - nitterInstance: nitterInstance.value, - invidiousInstance: invidiousInstance.value, - bibliogramInstance: bibliogramInstance.value, + nitterInstance: nitterInstance.value && nitterInstance.checkValidity() ? new URL(nitterInstance.value).origin : '', + invidiousInstance: invidiousInstance.value && invidiousInstance.checkValidity() ? new URL(invidiousInstance.value).origin : '', + bibliogramInstance: bibliogramInstance.value && bibliogramInstance.checkValidity() ? new URL(bibliogramInstance.value).origin : '', disableNitter: !disableNitter.checked, disableInvidious: !disableInvidious.checked, disableBibliogram: !disableBibliogram.checked diff --git a/pages/popup/popup.html b/pages/popup/popup.html index 986fd8c..32643ac 100644 --- a/pages/popup/popup.html +++ b/pages/popup/popup.html @@ -14,7 +14,7 @@ Privacy Redirect logo - Version: 1.1.4 + Version:  diff --git a/pages/popup/popup.js b/pages/popup/popup.js index ecbaf1e..103f07c 100644 --- a/pages/popup/popup.js +++ b/pages/popup/popup.js @@ -6,6 +6,7 @@ let bibliogramInstance = document.querySelector('#bibliogramInstance'); let disableNitter = document.querySelector('#disableNitter'); let disableInvidious = document.querySelector('#disableInvidious'); let disableBibliogram = document.querySelector('#disableBibliogram'); +let version = document.querySelector('#version'); chrome.storage.sync.get( [ @@ -26,6 +27,8 @@ chrome.storage.sync.get( } ); +version.textContent = chrome.runtime.getManifest().version; + function debounce(func, wait, immediate) { let timeout; return () => { @@ -42,21 +45,30 @@ function debounce(func, wait, immediate) { }; let nitterInstanceChange = debounce(() => { - chrome.storage.sync.set({ nitterInstance: nitterInstance.value }); + if (nitterInstance.checkValidity()) { + chrome.storage.sync.set({ + nitterInstance: nitterInstance.value ? new URL(nitterInstance.value).origin : '' + }); + } }, 500); - nitterInstance.addEventListener('input', nitterInstanceChange); let invidiousInstanceChange = debounce(() => { - chrome.storage.sync.set({ invidiousInstance: invidiousInstance.value }); + if (invidiousInstance.checkValidity()) { + chrome.storage.sync.set({ + invidiousInstance: invidiousInstance.value ? new URL(invidiousInstance.value).origin : '' + }); + } }, 500); - invidiousInstance.addEventListener('input', invidiousInstanceChange); let bibliogramInstanceChange = debounce(() => { - chrome.storage.sync.set({ bibliogramInstance: bibliogramInstance.value }); + if (bibliogramInstance.checkValidity()) { + chrome.storage.sync.set({ + bibliogramInstance: bibliogramInstance.value ? new URL(bibliogramInstance.value).origin : '' + }); + } }, 500); - bibliogramInstance.addEventListener('input', bibliogramInstanceChange); disableNitter.addEventListener('change', event => { diff --git a/pages/styles.css b/pages/styles.css index 5a23352..a1fa933 100644 --- a/pages/styles.css +++ b/pages/styles.css @@ -5,6 +5,8 @@ --white: #FFF; --active: #FF5B56; --space: 5px; + --danger: #f04141; + --danger-light: #F9D0D5; } body { @@ -31,7 +33,7 @@ header .logo-container { } header .logo-container img { - width: 100%; + max-width: 100%; } header small { @@ -137,10 +139,25 @@ input:checked+label:after { padding: 10px; text-align: center; text-decoration: none; + cursor: pointer; + -webkit-transition-duration: 0.4s; + transition-duration: 0.4s; } .button:hover { background-color: var(--active); - color: #fff + color: #fff; +} + +.button:active { + background-color: var(--active); + box-shadow: 0 5px var(--dark-grey); + transform: translateY(4px); +} + +input[type="url"]:invalid { + color: var(--danger); + border-color: var(--danger); + background-color: var(--danger-light); }