From 53bce1cdc271118f5bcf61cae3fac37f01339275 Mon Sep 17 00:00:00 2001 From: Timmy Welch Date: Wed, 1 May 2024 17:59:11 -0700 Subject: [PATCH] Add testing system --- .gitignore | 14 +++++ .pre-commit-config.yaml | 52 ++++++++++++++++ _examples/images/example.png | Bin 0 -> 142999 bytes _examples/{ => images}/sample1.jpg | Bin _examples/{ => images}/sample2.jpg | Bin _examples/{ => images}/sample3.jpg | Bin _examples/{ => images}/sample4.jpg | Bin go.mod | 17 +++-- go.sum | 13 +++- hashImage/__init__.py | 5 ++ hashImage/__main__.py | 5 ++ hashImage/hashImage.py | 27 ++++++++ hashImage/main.go | 77 +++++++++++++++++++++++ imagehash.go | 26 +++----- setup.cfg | 20 ++++++ test/conftest.py | 97 +++++++++++++++++++++++++++++ test/hash_test.py | 57 +++++++++++++++++ 17 files changed, 386 insertions(+), 24 deletions(-) create mode 100644 .pre-commit-config.yaml create mode 100644 _examples/images/example.png rename _examples/{ => images}/sample1.jpg (100%) rename _examples/{ => images}/sample2.jpg (100%) rename _examples/{ => images}/sample3.jpg (100%) rename _examples/{ => images}/sample4.jpg (100%) create mode 100644 hashImage/__init__.py create mode 100644 hashImage/__main__.py create mode 100644 hashImage/hashImage.py create mode 100644 hashImage/main.go create mode 100644 setup.cfg create mode 100644 test/conftest.py create mode 100644 test/hash_test.py diff --git a/.gitignore b/.gitignore index 198fc00..0129f76 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,17 @@ # Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 .glide/ + +*~ +*.pyc +env +*.jpg +build +dist +ImageHash.egg-info/ +.eggs +.DS_Store +.python-version +.coverage + +tmp diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..a2a62c2 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,52 @@ +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.4.0 + hooks: + - id: trailing-whitespace + args: [--markdown-linebreak-ext=.gitignore] + - id: end-of-file-fixer + - id: check-yaml + - id: debug-statements + - id: double-quote-string-fixer + - id: name-tests-test + - id: requirements-txt-fixer +- repo: https://github.com/tekwizely/pre-commit-golang + rev: v1.0.0-rc.1 + hooks: + - id: go-mod-tidy + - id: go-imports + args: [-w] +- repo: https://github.com/golangci/golangci-lint + rev: v1.53.3 + hooks: + - id: golangci-lint +- repo: https://github.com/asottile/setup-cfg-fmt + rev: v2.5.0 + hooks: + - id: setup-cfg-fmt +- repo: https://github.com/asottile/reorder-python-imports + rev: v3.12.0 + hooks: + - id: reorder-python-imports + args: [--py38-plus, --add-import, 'from __future__ import annotations'] +- repo: https://github.com/asottile/add-trailing-comma + rev: v3.1.0 + hooks: + - id: add-trailing-comma +- repo: https://github.com/asottile/dead + rev: v1.5.2 + hooks: + - id: dead +- repo: https://github.com/asottile/pyupgrade + rev: v3.15.2 + hooks: + - id: pyupgrade + args: [--py38-plus] +- repo: https://github.com/hhatto/autopep8 + rev: v2.1.0 + hooks: + - id: autopep8 +- repo: https://github.com/PyCQA/flake8 + rev: 7.0.0 + hooks: + - id: flake8 diff --git a/_examples/images/example.png b/_examples/images/example.png new file mode 100644 index 0000000000000000000000000000000000000000..c4b9bdf9f1aa1a7cc8d9f7b23bb4dddb638f4ce7 GIT binary patch literal 142999 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

LC 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

*# z!s9PCBw-h}T-<_!1_EUIY`917M5o`jRkd=;7BE{u2RBVV`)lnRew7p-^rNCW_*xO6 zVotE1q*ap9L20gHl|?Qoek1tv?e=5=28pjWJ0n0dHhV~Kg0G6c`{znMvEJylRw&jV%BP-RH`^g2o^Vq)&8spOEwX(Q%=Io8ki9|cPZ zicZv>3qGHfO#gAH7Zo;TMy1^kOF$VX%bs2?Tc$6j%H)_TZlIs}Go6&^vP$pmvXNf% z`pUr&8<{u7nPWvuDE$ph6Aybjpq`!%2`O%HAevJ&3-8=U`vd>*XZOM?w;csK;(@&emQYYFhV~Y&Ahtf6_8iMdB06-J^H)Tu!TW~5M|-X!5-r-J+kY=ND(9V|k92hx^HtMj+eg>4!=5(7 zqgbzhTXYq#9C|+a-JiWAon|Q!?4LN&*kxC^CvjL{m`mYNA+x8fkaS#aRd-ztHMQLh zn!T_^UeYj7BOeXM>Co4QH*1s4k0RmftTV(iY#3lHt0vobA%!6_mjGFfrRI@POC`c3 z!onh8e=)=_7~zh`dc=% zKlFzX{8ro4s|HcLDch)#2#T6+X*_h-4JCAN$-p%H&!LxsKdEJM3T;7KI^*ukG;;K+ zX6cjL-36Knu0g%O`Lpp5TE=iztSa5H$zyG6M+2!(IUSZY8MHmWtsZGg7_uf_|*9@7A+Y`O1H;6zkX9pu1o;+3qZcX1$egw{i|yx3QqALlLgT%Mx7Wk%w^v`z%=1bRM@d{VDKBET z!y;nxr)jkjP@`MAQmmZ|Ie}eB8(5{89Hdu;q!?2v+KS3uDL|%;ide=q1Z5P38te$9 zU#aDzMdT6t22mXGLh~%VzQ?{8>}1m9fd})L?Fh|d|XU#pLUv}Js-6VQzv)`!Sa~E2JGmMk6LQK z3L^Yu4b+uhid(c7i?RP(2vd|5O@;AW)01=TyL4r+)4ceXYZWOihHvSqrkX_XYQ+f1 zoE%)#lI3iCh+Fhu`Lq{OQfKQMoh=hS?D2?lPR4H?r6%=}iG6E;%U}@*dHg+`K#Glt zrG*Gbh8?MgH$B4Ny-)VZw^nd+x`fFy7m}Gu>*UL7K;1+uVF0!Un2JTd1&?LQVQWgt(Tg&6^$!8NFQyGwvD>pvh6Vi{34WMDG zB@>Zjeq3KWo&E|WtXCW|%l@uHf&OW)Nk;*ju@6YfG1TA7l#y^W(xIP)%m5FMlZvNG z!rhLYVepTM!`0aluR3nNgNSU8ZREHTL}H!T7{Y^wQuA@$42X8oy8PnDFnL}+T=oZq9CGnuQILO(B|{8{ zIl2?a2}SACP)k+SGLIrf2R(R@JOAQjMq)J(A^YKXiNj@El9WK-!cNPwJu;+8+^5%I z{aGCv22z7+JE%y7;9BvC{&OlC-o-_c{S;=l{J#I(b$(ZkP;NLpyd7KQk;u`L0E+%S zj-6*ghp183KTh|dsNtbZY&`+31>AZ!{jaVhN<_3g#H1EwM;`Fu*ql1~tnAhYMPd{% zv>^^_zq;cvP2bXDs&r7mV4d2`M@#dw+}wzyW}@MGLsv|H=}b_@vm+n)NeNz z2b`U58VlM5(W~O+cVPk5%szd$umCg+MUYhtp;XwL0;Ze^|J1C>yU1B#vu<0&`Iu)8 zd>lLQ^KVdB+x=~LW%@&oI~T?ZSTQ>+ji+U{eBv9vFlG{2(I{p?%U2(;9G#{2AYOF!Wn!(sZC z;MHa%$x362iA1IvUrr9<14fhz!y?^28WJ^x{y`-zcl?m#IljOSZOWOG%)+>p7B~zP z=U9fESa_RR7=6rI2nNlmid#1(>AcS@8+0Su?Az*?#Iwx^Fiu4tZNL=Z?FJa*^pGNG z|4kjS>|>int*1O5M!z|Ie0!4kcHs509amZ7V9WxWx&M2d5kaP;<9)s=Dd5cA;41Gt z-ctlCQRrdU(i(I?G#+nUr&I1Sk0&ke`zv?U5fo!I*Xr*r^S1nF^;i0j@%dk*wUXsBf1SyIXulzRX}i=sQ*s)*5`tO>GvyOgV_b2i4o~UH!xL(hdNizK7 zzC7iA0zKg3!lKq^NBl{m#0<0)=mtaJ7DeD72v)MD)o zGpZV%xHT6M_E=SZ6MFkX`fPC2k#d_2OrOUT^qEj6ulrL=%Ym9O9BR-S=~{2wzZT;B zaNFeSYHIzrj2N(H`A>%xdcIO&C=Ze6e=k%Q& z$JO~H&?GQ_U%8T>bG>lo8^eyjYFar-6h645#}|0oEbZl^TMo|44@`d(j+xjv0DzS{EbE~6jz->8vVl69;H-aVuHR+o*{BEmS&@N0tDE!Wz_W{{F#UVo3=Ea#0>= zmPLkhrhN;QC{;HU^0hF-2>n~Z+RU*NNu#sCkNpLOi=fz|frG`79h=d@$0scG6OqhSicRNs=eO>3V+M#vIH>Qq8O-4p`K|i&} zH+G|-W?F~99*%0>L;;H>@i#Q)PU3Gq_!BrAHXCS%s;U$bfs8Gtj86tT@@(~-lp=K1=rajHeA#@-`KBb1#l@wz$q1z~ai{)nU@vUa$K&Z1sHgwv5r4zcDL?t z#h-=#;vtaw7!U%?h1Cv?h>7ZT8wnqp5~=DGy~J$_+(A4lUlgdAY@Rk38hQ=a*u|pY zK`f`FM~3|xqO>vSk=o~S9wTwCvJv!5KB}7Bj4o+7m1O(IQ=>06u{VV9Gc<$5_8-w# zC#m6~>R6BC4npewo2`NEo7+Xg!KJK?USI~d=YPrUKm{lZd6-nLSy z%F080kc%-_%VdyEzOM^j{$o6|1Xuji!AhzIp~eYytu>}JnV#YTpIe%+_|B+QtSYUS zp8Q}6optTefsT`wmi&)oWGOT}Gn(Q^3C1xY9A-5I@yNdA6Mv@8jwvxr))V+mG_FR78U(x=d-sI zuWHLZft>=`Ca`Pm&AeZ>Kt$5IrM%ki)hK2>123no?5%h3QZ6v`Bg?3|*>2IOx~h`s zKf^N8U>h-6=d`VskK*go0j6%}#;$iy$L^vzkr<;R8pJb3lcqL}M@(K8YN(LEe;*3);xUkz zXg9T>Z>U@o9UrC0L=XJc%B%9Xocxxr?4J}~dkmBnT#BJ~0E+}@hUYguZj^bto;Ot4 z^8W*=tCzUC+xa;6#ZgkDVX@|S|0apfwD8)UOJ>gEqbnoEo)FK3N8QQ2nud*2bH0){ zi#?oErqkfei%pXzDP3}I%9$wk<@xsMy79pAPU&g#n;27#Hj5799q-N^>W;BD)5@E);j6l&5Hg`>Nn10* zAce#)sQGz%IMr-%CD@N(uN?33e2KHQu~Cm74!_#9WF5Db^f{-G{rMU$8nXt;53h;L zYbHjRND^d-?)?E_)U&v5fgo=gS>>m&GZy?r)y~G9r`Y_+Hmhz)!i{JMhej$n-qlr2 zoe8zj$3q9;VQZf?Bx=csu(cUpteztoliWBgr>snQt`n4LQ;nRSs`*`)xvE8YJsp6a zGWG*V^%nr2Vq=it;2cnVYe}2IM}I=Jmu)pN>Dditxw^il9`wZ-ly5)j#d3LnMMG-c z8^K_5-1upRND44~u9p)-7MBF30cp7GD6p|_k0fh-iNQ&5=v;8n;TUOQs9EM67Z-8l z_dp=cR*C9Dd=^BCOJ~7Oe$PXu@sgb)QAUV_(2yw%&AmBW&xR9XnBMN_N|I--!J7wB z6Y1%3?-8R2`&*;*U&ck_w>rP}Z8%JxZ{qY}B|j4?FU9 zM7Bg2@G6j(TA@w`OM3pTo9-&Vf=PUx(Z8-*K?YyD1bm5Cgy^XH*#ESsRBL7&6feQ^la+STXQv#L{?C{o)he76WVc7UrN2PP>3e4Sv6kUEM3VNyf1X zUrTTPNGu>m^6{vd{%={4kh0Pk29`WxQyLq^LgXb1&D7*bU~gkA3uBqZqVanRb?_gc zwOneT!GtkPFKnQ>BFBS`M<&*)r#8jjKdPgImq88#$|abYEdah=tovwvzFOV)oh)@P z87S&oNS~+KGDWwc?ig`b8nk#JQ=Z9t>&i9Ea;bA0ieO*!2;_Q&uq5|~!k7HtP$`;>B zcYmg=t<7TmiY4|foqtL_vQjIf^h$jIBQHG7-89@!;1jn7hZg*7G*;YYj>{zNRFyt@ zQu(92Fzvn}j&XLbMUTtjl8yh%s(WCE8?AVcil!$S}+dX-1wnTb%>iK8-*wKkcLkMa96(=>d8{YL<5oE=}_@X%v z7mnBcD`%CLwP_hTd4)X_wc20PZlB{pos>H1t?)W)1C%rceZMQcp(UkiOPK@-s(HB~ z`?gXu4H6y%(#da?l#+UV(kwEl-1=cj%s%WnmyRObv%YqtOqoCWsKTWu)7^I%d{B6p z+;RwgMX{(bddb9kR^Gk-t3(hP=VDwqxn1-uvv1o#8m>=_4O6#1tujZpHA#B{ANZ=& z-{VCBSWq(?;3LJzV5^a<85(0quuD-*#i%O$ux|59m}r50I_vxT%H<=3Xe@zyi};!H zSzkstSQ56F;4QBaCQe2sMU8^qwX=GZ+nK7>^DZ_@%njjLZ>=WW6H`*KqXtBBN&AVM z&lIZWYZV57dBN*@px@)AA24l7*=MJ1Q|avdXk)2mA%we6{7~O`O6x`x!Jq=MgZG{0 zicbmHW=#544ZjS-!0BhvT_7p4Bpe$?s#Y-?o1hTWkV{XVeEOf+?HG|k;Q00C)o*hG zi;=FInZH4gW6%4g8Hi2IdnC6A0516X22Fm!l{9FGT0~voDPPz1jb(FC24~b=XHU~!u_=rM|EFT|M3V7pewgoqr-O~i5$n=5_(-Abk~Ijw4$sB}~wu*ZR{YpUQhc@%*yyEr8+Rg0du}Wq%k?K%0%9_PpY*0`A(X20EuF89|2a`FW$_B$ zxVXhW0s@c)kiK%{>@oE#SyG>G#f;!1_(>Nfx#OhK@?-x40^=$$U}_oev@k>e`OE0V z!j@Q7Qce9)Dc2;YaQF4Hes#2#L|{E?jDN8VyV{M2qX%^{wIAFnJubW&Kk~lRS=d}8 z7Vy(2KBG2^8EJ&MUV;Ux38N*LkMea-Vs#vMrXZMg0q^s)lX zI8(oFBt1^SigDZ zaW%TQcs?c)3&1Kiul~X6#A_pu@AHYzufW@J|T)xD5_9 z{yZ?uW~&h7OC`;dvIJ@>t?NTT*VfiXM8icIkvU7t~j&cDUNM#Z!-RVha^S>#RVPEJaZi*UL5DI{Al3~3_G#UY^ds^gIb zLA4YfKsC~i)q6-n+SkZ7?)66wRE@l_3i->{piY+h`$9N873*CKX%{Y>oecmT`N`G z;A3c#ZUXO&q}B&k4N1txwlp_;BA9(lT%Av+&`_z|>}pa_FLR>bYHP0&+7fGJL@6Zy zmI>ZgG5qrWyP(bd{{CaFC|n2NlN7u;bB;=&J;0)Z9u+0{A=(DA=38Z4vS3pg%a#TI z=elsR*g7)v+gc$tW#m@^Y@?G1BP9M?DnINO$p)&9C!-VLa!QDaD{Gz$6 znE3FBxvIqQhzj)5>mw(cq|Xv&N^J1r(78>hnk*hkAI4lo7F>yerr^)A3Y1n>+!gy# z(s=TY=2T@InW{3M82noZ{c3gY9P4Pxgjye&crGRM8v6-|k;zeDYdzoyJO6uODWAKt z#0W4cxWa#-2Sfuy-fu(^FtI}4AA=E}0!=w!-iF_?eJ-U<>j7`!@21!J=ZnFCo+6Ey zLqrhCe>h2RLkYelK9%>a0tJw#i>>wBZ9|DaJjPF|g2yBtd8 za4v4ojXLYgA5q`tfQPSCNJzx`i5j^E##-|f6ohXlue8{qop;x(+-IKMX%7<%DYSNRw{QnA=XjAz zC58b+PrCHv9k&$9U+;E@bXP6bKC6Lu+>n!wt$g= zcSOGzeO@xV9De(Ec0=*L6V1#@P$QW7_v*Rm>YyUC=h?aCK9cnYD4nr@xqLc%OJluz zf3|n+6678R`Y~qkD*RYXYrP-ub>Q72>f`*>inab6{H7y9BCr0`KuA*}@?iW)ujwK# z2G+Hf-#X}%_g?M0@k4$ObktoGF*kB~nkP>vz~FTj9tDrVe$M~OxaKMU6yLzQDnKOY zSC^AZM${MfSlPYcp4SZrEMYuN55YF*UB)3OZtVAVoQYJXGPVR8i3A9o7HX*RRj~v@ za48$>#j5#(B+{HiPfjn&oX0?}j!;r-z()vc)^0(akA-7g;}a^uS1axpWq>Jrj@9{E zyL+9G5YttscbzS=TH`}j3x|4lh-~REyhJ<<6DDj!bNrGtB_8tVmy4fL$nO%+IS1d_ zk1zVeLr>r5R8C8$gfsXcJYMilu$kBCZ(ZF^e$X8Cg>BLeJ~S)}>(l$7H_oKXe~Bi6 zp2_dKD$cjHCf?_Yku(ySQv)~0CI#uxDNoNod#z5Zc)fu8d(4k(i%*vn&vDVgkok9q zONdQykU(#UByl`r-k;cU=Kg;2QL6W%N67%j0JLGhahOoNQGF~uEv>l$GH!_y6gquS zYHwdg*^Nf_(}&KTx|L(~uT-pm6rTp)2ye%rcGpb`?G>)!t`#cJ{~#|TLmnB?Yfhr> zXO`NNa|0M^03yWZN~khs3&p#NWUR3t;!9j@1^5euXME2{xR_D0`9!JP%WeuwId&5! zCqJ+i+8$)|+U>vC#FUp`7hK6Qg~wM_aBUZBzesrK{`GH(szkcH*H=}hl~UHS!uxrn z8_h$I`<8J~`$q6yT1~~Gg?ng`;q%r6%>kluI&eU#d!=>u&*{n`RJ()#e$<{LnQ4A{ zlJdApa8Xk3xvkN=;uLM1P$}x?qLMC}g-*NYc}&>gOTBChxDq-m-|6>L@T6W?HOA|B zHuXQh=mEWxM7;ay*%kfDG2v`Gq1GlzUo2i1>+^b8EH-$s%!JO3<@8`$wJnQsM<<$_#oS+8t9AD zCA3U#6sn{b)eKr2?o)JVXP4@$$Ofd&A4sah#(?PCYzl<6u|M9Qn^<8tQq8-g&ObhG zugf^|A#smMXYnxqs9I8--#rI52?<`C@m#A=rj>^g26mXwPgHjC?cb#7v}{-Dk(_q^r1wT5}3QK z2}3D~2r!Ex{@Eb!L-Q-tg=wni`yw=DgOH+f^X%inb_#IXCw{|spIB8(x3T^*Mg-kQ zuP1=tr-)YkvkvpTk`{^GtC^anOsfmUa+QwCH@!(G$x84rm}D|kYQ^vCL`BUd@ALv} zO@jN|5l;p3O91)HlHL+a?OI{SOVR+EW?yHg+Bwu*qL!V^jkussWMO)AeLAKhpl7j} z98t`uL+$pRA~b5=OBI8YDEQQ2N3iFLk#4qigN4;$n@+kY#UEaziU}4Oe)n4MEtLzm< z3)C&bQ zdiIf}#7RmJL&wF!-TDhRm_o;hoZ$h*M%`G1h;K?20q)v^g9*}#Jw3grD@asRAIBlx zep@7x+%5#n`Z}m!mTY^0eRYSTc?DzPvM@p?Ys_Mj*Dq!wSPi-(NTG!IcGfuTxm9GY zT9+e2ps_GT#?|%wxR#dq$`7urf+-b7Bb}OCQX$qIcTabYZym?Ok%vu0!M9bMBK%2x zjCFhh zJGk`{eRp{wjUEnuKZmRPwR}p{@gGFQB64*Jc_W*Qk~A!sFwKPHj8;u(HSVZzj>ss7 zOO1;^%134$D}Ff=s0Tz_weO-DlZW)7y0P?FTPL1b5 z-fpR7R?xn_er>(Qkva0wFg83K)aFiyW@A$tRd`drtvxI3?8x#H;$=%(yYdsBIz zC5_wqnPT$42Pe4PW0mZA`~vMn=14S1sMSI;kyqO$oWnBQPiIs@GVV*enkYVbeu$^y zfY&^oJ3Vy>(|bIcPnv{$TkjE7J*RVOwhk8^U-pyrT&{q@w`V=livA9cQP2YuL<(`Y z0YYNb$w;r4rkt}V-nNX~pS=ArfP{$vaBonUO)@KSdsnW)37w?onbbaCAhz2GEISgz ztM5E@V&{$1tp36FGaG)>95>%n0?ve520GgI0{;g|b@sKH|s)12$p(Sn?ml=9a zm5#S>KXA|68ld(wI?1mz3s@FD+o);oKJ}$i#wX z`{dcO6%Iw0Vz5ql=Dg@vL%s1UJdgDhE1az^_xUBt^w?=w6a-6of?2UbYcAWl43gs) z#YqJ(eH8JoUfLx4vVzk*eTt36nixg&3Tm`cNyWp{bF*L;sPY$rU%%kRFs)44!M?na zc=h_~JpBLag|AgAIdaO%5y9JZ`;Mo0 zQla3=Il}%iH*6PFv*YXxtL06c3pep)WWvw{SRl33lxTr7G^J)$&Ln`Ho$6umzDHE> z(dPYxuhZXq-MAtfLg!#sYofAuQr)|xS2O|YT<7=#RAa+!7D%iJBLoRpl@N~ObgJO-2{v01G=ydV>e%&ttyZjUwU2AQv3)&;SBLSlGu^9)lay)6wM!maVeS3#m z+4x!}FFqfo7RUJ3pR0mz>(==LFQo?!Ts#G%Sp*RN0}4jjU-CBkHlC;6I1{#gCMUmS zR{X1oZ(581OM5XpX~IoNUxZ=7vVJK=cnWj~+LiS>wGrVg%*z{D?^;@UJuLWjHE!~N z){0p0yh=bkU^_p@b%b&Mys+A}6z(3;;=3XsTpdy-|6x8)){~@CjlW_^-;bMtJj9^|TL`WNW&bhom! z*7NL*r5t?Co5(#@a_2N{jbxi&_^SzOj4G)NFXH?Dhv=<1BE!?}>qpBZ*k{`7gz5Es zqkm^a&2h@1(9Sq902mVd2HmB`--4`bKH$24w{I&ph9|_RK0r*9Vhphrvr2nyZ>yCl zNL2^Fgg`T3NdF{|z6!zLH4=}4#K?y6dLFhnms#Jag-5QR<9OFIb15bz#~ttParp&C zZw}~Z?K5#E`A-2OK>GI*aYS2!ZaFUuY1b zw2EAntR2Qe+tm|TbgOfwlpC4I-iw1h(9du83*N7F5LtV2lbZ<}WHTo$Z}QH^&)$#f z$PZVMd93}P*!nHblnu7#PqgyaJ&O~Pa7QO2iy&ZEz}uSNr&CwM~#K`Zh%FWQI3z-I9 zRyOiieP3@M2Mk)1*RQ9BrzgMDLim^nsGvT7LhrL(=yvd3k>pkwhHLqBp{Y7tel|0O z1~cUk*%gss9u~3j&1GGY6yE1)i~^cY(dX8;g@OBDcibMH(Ec1SD@{mo88eG#!0Ylf z5FXBMAovMX2)>iBDskdkM&RNlWWzoyUv!Da!S9MO)>kvG3${>w#~g;ov%XZs7)b)>XJ46L!6}76}EBRxodfUxv(}1TN+ToQSn@O(O^Bf@^m7v#f>L@CaEf=Htu@zM!&h2 z^pt^?-&4D|j5)rTSZ5SBm-+u8L=sY_5YlT}4=Bpl9(3TruWrhj$+d6dVVuAp{Emgr zdJ3V2ZD2CxM)0#h#)kHQa2>vlt!58ce6jxwJJTs++j#mNVtsPNgU2R|OLso#Xt63q zpw(DbJ=ZTS5ntTh0T%R`73I>I=QFOI<`Uc1oqt}Lbbd$Pn^sd33dj`2=2;*-qPrIq z&8v%regF=ee|rbi#TjB}2&GXhn9A+K(yPuj{5ypruRtn(iB*60p}<_Jr8zA$HT~Qx4+M=%i9;W=~bC&6g@#nEjagjN$1Wc(*fWRZ5Po%Y8m_OGfJMfSvS)^ zHl4Ul^DXwAG!^{=Teg^ky$o;QaM|n21TGXXjCXcUKjnyZ=5@Gk*Z3!bQo3eoigNS(IOL&qvL+uu?Tdgj0VeiRv(;&r~U3leTvEpL4Cn&9#%>o|o9ZBgcWiWjE zt4SD$&c;PrObvDJl1r$52W8H31(|@ythS_e>amT#&BI zhq7DzN%~a^P+sca0%r(|;ds`!8LlXIWrLJDs3^VO=i%ZtkhLZ>Rvk~^?P-xN?mW=N z4`qJu&*l}^>P4o+TEYhr(pXD}4KfV9^yh{f`G%fWkoViuX+`W zLr?u(8O~|Cln$Mq^;kLl6m*>8f9Q=jS}9ifpMiU^t@3VAkuSWIbQSH>3lRW>hL^hc zLzJ2t!gT-qnN}ViQcaAm?)~~yyR>%d;yB2U#H#Dbq7!F|+}qbDQ9euO7xSYz%6a{y zc(HLTvhMaKmuASYJvk(6p?7aJMArP%u+qLcJ}5}SI@SV7Ln~O}boJPVGrs59D1ym< z11Jg340?Z#OM%{Q?kww`3B?=Ac&Z5{P^}GKsN?S$!?PsnXljl&&^J~CL%!547V~{) zL10yZVbQH*MFubDT81A<9DmR#=@pBqo$&9rT|f2=|M1@%Ehv8jxF+oh-3Wa1^>h`g zcMVV)Vq(z;E^3eRbTQc#Yg>RusAF?Ea=>yCOX$&+oo-e+DZh<&Io-*P7YMF*cF?1v zbc6Oe0p>(al+J- zf3Kd?sZ>DP@w$YZ4J<#H^90-8@~TMLQFbKZ-mZ5Ck`|wyIz#@~NhN)+3qUA%Jkm+} zeK|gO$xg~ywWdZ66A$&VP6v?*$bJ}Nt9Ck4Doo=rpO~ENb#%Gsc|00*!rP)}&ro7S_>jOi@+- z#P>3)!v@v!mWLtZ_uZVfUf;h>Zus&&LD3C7)j`yPtsjW~vab)piOpYOz7!UY$wt<0 zq@jA;9m|56lj!D8dvm(Il{Iu3^>hlR28n7@&)lQ1PH3s;X)bfKpZ4Wf{e(5daP7J+ ze`^lL*mIxqe2)76-y*<*8APMkM#EowY+AzY)S*}YO?v=+u?SI@e{SL4e*cragY+KF zxADozkX%k^tHskB6LPkmw{>89SrVC*Yq7laEkpJJk^`=$ZEPj{`2CB+NO6n0LhM)* zrA3Xc2S0s-6KkW-1>pR3!DVaLe?yW!{{%!4E0NgqdirSaKKAbRzRMeY?SsO4Y_gQn zw+FY-F}Ep^(fy7K0~Z2CL)Lo6O(#^f# zu;?eJ@yw?MA0GPAL2ruiZDD0(plGM2My|n8jn#fm+bo~v7gJgeP^#;`1ROSc*Yhes z9X9K|-uLGZ%AM%DuVL^W{!Oi+cxu_$effH^E)!ee1puk;mp&Qv<$Orrc)Lr&g>fPK z`%0w!5Yo)@#P`*|U~|SX#mD67F#vniZG~3eJZc~)Q)xdNQc5yl#&_~~ddmD|7QWj! zG1q-OK!T1Aca5vy(A>R4c0FRw$S&a0B?{&w6|D2UhMPF)9Ewu@2fcKGW)Bo^(c5o3 z?+i@7~!4!1w?fMWM9J9qaRTz9q;+U;{Pn^guDD->xE$}mx zw~BzKk9^fbv_QY!ztv?8iwLILyn^?c9$VMZdNEH*)6@QKmz`}~Co7+9o1gJ>K`!}s zAHVF-Pa@nulamCv;?fbyD&?d|(!w%&j(X@080;lA;#sFtwTKt_0G-&pyf&^fC~o+_ z$C6*k(5Cm>X)tMl@7v?Ie*##@6N4nWF|2&ck@p}fcr~L*4t)lcNj-9O zobS}dX`N@*KK$=9x5wMNG&|>k=UgYJg92p6|NfZgT5v~sz;$s!CholOX6BAO^zFI5 zE0ZHMDfZIh#Hiq>ABAM~(zkQ>o-QN6X}tI3zX-52;p2)wGJXFJun-&9O86nCbzp!; zUObH#C(ZIjc%nFx4|*+hFgQ91#i4Wi$XY1A`GnWL)Q-%gp;Qy zl>W!a<9Z}4PEz8_EEg@7`dR1@NJ1m#DUSRi?{oC;MUe>prK&r)*HjSgu3zwUmryUO zRjWmMVv?rt zG3<4B4&9*(D?a(vqtnWmACr;6FwPBjK$WpwNCjclssb@-nn`fXcif4q4x4rH_poCG z9okDFYaRMIrXDUXC5fXQ?);CnDyfmZ!2%q1?y~%2E21iaxl@GuhD!83S=4kMo%!k{ zi@IMezq^ZwB~aI$pISlR`)!?^9*^IkanRDNj5~~danzc^okXvX&U z|8uOD{-4Umi|FZjfAIF$9kIIpL0qjm>TDw?V||@bJ|T=NoSCo}O>qKetX`z^Zbns4 zM2HL)wdek;&ZW8=@7-6+AqKGYMJM+z)aj?b>23;kCrc4vDlK(~_M=CMNv#o?3wXFX z8gTv7fBi+Brg?vm9XnXiGd*1%_5GtB-u}?XX9+@0;S|Q}>ua%hm@&?EBdg?eEmFJY zv*I_VPV%hzrNOB*^b)azB3yzDLG@V^2PP@*Tp>^lQQu0}0#f+dTsBzs?0!-M9nrhU z-0OW$1^zcSvAk`T_x=+_Wa*2pZy3Aw^30ucyU;TcOUeDDst&45dE#{V zAseGFudhR8zzyvyJ`O}vO$?_wni7T;@x0wXd|?!L;&Iz{l1fPoH0;%ZVLhHT8eGH6 z%aXCNQ%(X?(-!!j3rt)epAb^VVF$&x{x;H26zf)abTA)YxeKJ@Np+Ji>rUAtS59;k zq@d1vQ9vM?a@-26=@6~%;pk(P*^MbN>K7ldc}9;W+988Zt6>>&hkIV(v{%(lHZ6+S zQzRA@&gJUv(O0?af7=9U?3t=*`>tHpPJmM142 zNZS6ZmyspjZmj_$g}qxjCpTnCQaCI`*Y1{<`H|w)KyO57@fwD_fi?k(RKyF`w3NY4 z7#f1}V`<>%$Jr$Bn4>O|22|XEBgLi88s~6@Dx{R`@!mJIlZ=l_Z7_s5!_?1w1}xR8 zFPO7oP$HMi27@&G8ydntONlAr0j-r3lZtKU=#oszX0anAWsGLm=A*%7WVAD26?moUq0Z3B!sqh}aD)7=hXiY07`7^hWd^U+K-y zizy92|6z3ohqX@6pnCM1Yb%=Me4Pu4*UUG>!tQ%Q|J_~aZZJ43@D=M~2e+p0+1Kaw z&;Tj$fvuqJ1Kg+VuwRm!_T~ zd~nN3)+m|Oq+aN2Udbha6SH>TDRU&4TpsR|Iq@{K#LyTwn*eGyo6$(gs#TxnWlS}# zO`)-%FO)nkz7pfBRXctA-$h^axkvBe3yZl26w>YaIYNG!m#b6P5HV19{lLS39)v+3 zCgiR=W6YMw$86HcsDb~>uT5rv=(8opaWH7NukpQf62MO9TRu28G?i0Rvzz=KVhkc& zi`N;Jlg5Z=IIO1m0i|_^5?CcQEK6@|6)-(#oi?no(L#Rb)3dLH+fLIlHe11zN)RnF z@^{oYN3JwS1zQVEt!3x&14}QF?G9P%Kr(cRteFiH)3wZ{LJ+2w$PhI8t&#lJ+po%Ne)w zg#*gUii|0!uLrP2Yq+r-zIV@~29!jmnx_~XXSmX2u1)=UHPn1?j2s>Yot-;e#_YjL z+lU%S=1(-^yq32>Qbp7!d46!G;HSiwkjVgN_cTf z0s0h|D`bQ{s_%E*diV?tkXmOJt%max)WRw7Pxj_Ra9UYsa;2Kg$VB zT@WcludN&+;DcqphW||kS~@!$k-+{q1t*r5`BjIjX0GUD5UhZ}B;!`D5SzPH24I}n zI4+^n(Or171T>XO;rjo2yrd8HwdT@r-cPRhb-M)*7B2a!P;rG?oZ(;rmmD1uz$m?9 zOj?Re`DJK#(2!4l*C!X(GQNUp?jU?+Cr1eW#{_$U<407oyVk<$MDXus#DZoevQJX7 zT3X&&*%MeIiu2TEw^#Lh3A9e0!T;Uh;d%yGUpKq2Wwr_5R`fi#JUZK39Y4~IcZE}# z&TwGv{?Qgi=23%a^^X@?k5eMYe#a#ljyDCVlPD?eC7HbcX6o+QJ`B}pp(kn9=_yv0 zr~_1cuhxzJ+@GKQ_Ii+MnQw&k1(j40FQ0PBCu z;j_{Il^7{$Rm@PSwca?N81bIij1m}^pd8IUzmKS85oc~&RiCd8lvjd8s2o0 z#ne4((di4X9hO%FE}~Z9mpvv_w3xqXL}alcND6c4R+l{-9_}yNjGd(wu|W4i^C4!Y zv{tEZ?wr8gLZA|%@`p)&Y)D%9T}_7xI*ht~GS?v`1&C2499;1}d2E3Q|5x?p9p?1s zzMS}e_$(!F-TjsmUcf$4Z#u#|ZciHD^xdShtqFm-(cJ#KQqsZwJs!9~DuH6kF=v7x ztAzFOg~!TT17>9EkhW4BZo7+TqU1*2M1j`2B7`{ZNd!cU~CmS`o|GHj$g2G zGskVkJ0kNpb8`c6GY%AZPEg&ZBOWY73D)$DmJ@ec#UfNx{)|i<1{0L8-0i1$qk+Oa zE_)pgkQ5UZRo~nFW9Z_5Bi>0S{vuEy{h@q1TGbIO)>!??gRKMLcPBy_o`)e1f^(D<-<1V*u4|uquh~Iq6CtANRl2e8L9; z-NHP=>Tw|T#zBo$WqvA>QsETv_ywBYO8BrSxIthHC@}-^hHvUqE5H#-AN4WtBdpbfiNl30ZQiM{Gk+Y|Q7PmLR0PH%O24hiJ4Oroe zuLWaKP=J$&ihET0qb&4;|2p8!80ELB%xkcwqYu9$*93l&!ZAzmLxPKIlIe}?P(y{$ zcE&Gn?%tH!ltb>*NNKpssd9#jlxdd55>W;&)$eT$@WOxtkXB29vww@uC9#V~=e37+ zUv8_;=fC-Kv!17G>h+ZhKpA>L<;EvBH{Mc##z~cm(ILDjZ~-kUJP3FFCu<&|Zrbj= zn!@kuMDgXH!NSM>?xBbpis}qmcU^?+gs0w=U@#!$gvEI7OW*L6GIExD-k2n&>#%fezec5;HKwvO zTfR@svTdlgy6GhRt84G?D}^OYFdXl_9h~oexBh-|@~<S%|YtnFoo9!utCa3pOh=v0vGd92FqWLp>e~ zSkhXA9E1qMlH_E;LYJ&6xFyowkIz8e!{~0!N;BPgVfn^?hK+5;<{t#0fo*6(qDI*} zo?o)HK5NCI`j#$xHabe$q`BboN5}L0f$#9hsrTiz2TE`JUUuk!jZL8(&7l5(gcAm( zZ$~C3+Jyek_=CE5(p!AAbn9`E&LcqUuK;Yyp)a$LL&>~1={G+5j`-{L46Jwo7eSRr zi$?|Du$(KKKC0I`Q)rrdmigyr&x6!7kS2je$g7S#s=Azs1RCiHONT6|irGUn@o>hJ znVdEU!Py#lmGFlB4D@32Unj)$VTmw0R9KXS(UK6xFyd6oKNL&r^lDC@O9z{GJZZL= z7xq=I=^md>*Auud2RX^_;{Z`Li{mqfxr}GVII2AIk5y~h_P&QTR(s|P0l7YxC79+} zjak7bPj4z$^$qFCQylPCFi{7I0X4>P_V}HA$)ArD`p++Lvl<|4YVp(%kk<3%cAwYV z6YkUcMa<1LhaQQzkQm-@$}GoD!KG$Ov8LtfaU@ukt_YOit~G%}8D3yx`rq@ad#rnh zSUbgkc(&et#}jj5foz&jo8`eA3)JP3O{vyWKk->xI5RnlH~GX!AWf-)kVzPH>mi@x zX*1$_E^E#~&sEM3#ASOAI zU+N-mgF+8B%47pFHOWQKt`n$OXlaG2mF@a?zqB7DJHrjo`bC9(7MoK$#JOvoqI?L? z6?$Ht>N`IV$hIUK1gMKucHA3AOnHIyb=?f~yZ$DBygF}Z#}LL>B^!VdGv)|!`>chvg~MRdMELZ+$s(Gt%hsAt}JOj`XFA6!!rAu?5( zlmhJzk}rn1$sm*<(9YQnAFw764j1B*++h1HYX_=~YFJ7ZS+2rsw$5^9D}KlCgP(#` z0Gi%@oYEUNvY4Dwgyjo6fX;9{g`(>@pc6|D_li^XXYd9(h?#2}QHvru5-izQOpYN(dX}BAC4vub$d0_Lr01O58pke&9v9e*E-R~Q&(&CKZ zip>^iqlSO2m0er|u@X0ap~ff!)&Tga`db*(?ELa71cgdP)m?6^j>5lo-W^c>!!I$2 zRsv!s?-&L_jZBd^vQ^c!LK8TK;9kED75zp;Qk?+w{E+-M?%!G9ztk$Nds#UWv>^*$ zw^|=UEO^Yi+K+SEUW<<(f8flgbd9Up0+mq_Rg|NV59d;g5$D|MIK)K20UV4wWzS!RlzvlgEVJJV|_}*%MR(d|9HL_oG1(^&H~J@||}~5f0Kg zyR&lv>BM2Il<;aPpNRX7scft8A&2XedHN?exj#nK$Zdq5x31hchy{*F|A~F5RU&`O3lV<0Ha3Y)Mm02Jf0tybzw+dKc zmGDLv7E(%%6r&B`%Dm5cFQMLM|ETZo8Yw{|8vYqV7L693T$=q+I8n;QjQ|#mMySOW zVury{RZa2xQ>lFSJ3EbbOZNRAkkPOc0#C(?{m;`+eCKz(qVHe|QiILVzS%yKmRG_G2qLRZ(23a|~ z{!c~?Q6eMVx`&3)M4ut-NDP0OV2ltvpkB|p0EF2}PcfE>d2uCZMCx)`BNtkW+}Hy| z#oC(ikDx+nX{kngVVOLoc~y_1XUOD7@Z>{v5w#Splt*pyb{LL-OAC_M*-B4t7K2y% zmpCzJ%@Kxt1Qux)irRpT6B0XCRFmnFE`$z-NQ8KsNhC(Pd=tKgSAuK0OYzkRw0th3W`h1&69HC3_9;-o_p5y;8SB;eo8qdTMkFsZcDu6-I)S@Zj;C{1BLN;{ zE5`R!M(LxPmPB@ZndV|eY(%u;*x~eMbz4+ZPXa*{J=oa$cmWr8PwO%Ne_<`YX8R(A zzODNr)w_@uAHnUemE#R^s_1a02BtbY!#7TH%nuwNIZe{gq`!~NzPKTZWqmhGUDwut z+e;KM@}O!4O{A+=PC$yBfO^7x*r~)QqIVsJ0JjP7%A;u zr&;r&9w1vd!Xe(yNV689Zn2q65XPa_?0!jVr$nOJIAdeR>;4DlQUv}poDoB19m}cy zk_zW16*?AetrIm03S=Ar$`&z*A~~x#Zdi(sLa6d@0W4A2T#S!2B>2oWH{|!qoKa-H zu8LD?!!DSSgu;^UWrwgOw5EeCDpb@cN*IoXus0GMVEK*+yZk)2Buv*UzJ%L0W9MAQ zs3R05pH0GPvX)gA5_g36l_(A~)DL+qF|jOb!X@C23hbXwXe=8xUcZX{zXIo@vUpNS zWZB}kS}BL$gpsL0>J?<>D#uv2S}R54lnT9^Lnn`~+%z;&OY6}ba?J7->M~zRzt=7( zDg|K#cR<7{p+!pYNg&N)b11S3qs1Kh3pT(QJ@e%SCSgE2C0RJgfL2)%+s@WN+1$CxL$mO%}yiW ziqs0dj`a)D?_HxHTChOPpCzf3_>dlegD8iyiN-BiDYDD-zlQi}C`CD;`#RO@@8)Yu zs8WrqAbIQ|nAoT)ra`0kzV0$W?oveTQef-UYU~|($-x-@$?lSNSszQ{?GvUwkB@8AzFje*2M7@G^I9R;)7A61eOu*K5*uf*~qg#)CksnOCc=A`aGHK7B z1X^b01$q30xAWex`|a;|XW3$5^J9Ivn`@Z{s zkxH;t6cj28^Fx%wL5LSUe--6_%d6kYdb{PVPp{|D=fG56r`vZ^Y&t!t_Nr^ExN|LA zO{|`wu)jat`<^9bn4JJe#?cS_YA)PJ z7{!`Ys0&*G^BsXEfiMn}AuhfC8Qp!KGv-_9{5K3ml?QQs+ zSMMO+-}yDl3>9GB(3NvgojoLLe4lnO776>GM_*DH%g^ zLom9&XOi`Ni3S!h5qM)AU|WrayGCF#r;25sl$PxiDNMEU=lQBec^0hd`TWPOfcb*X zQM$C{p1EK3e9Od!OFee;rUPZ*C~<^7R8-~CO85eFGlZ`d?yJdEvu@W5pZak8592SR zg1xFg6H_kde%w$pLAq$7l?jgcj%{CKip3fQ8Y)M!$Fui(@xZ%zvYIMqPF2z;gCVl) zo%FZj&#bfev2kX|S32<1-*v;*YcFvzmDsziE#ebw8j33H7Y%Q2Y4;W)%nkcJl;HBG zM%(JG{f%iR`vbb|219}Fg}=;fsLJSR1^&+}qKo3uS9q{61Pd zz@M0-q+4!TX7|3N0w=k+|BKTELkw|nu&OgN1RVrcKsQ1TX%(1nQ5)pf*L=G-Ymh|f zZ+&UruwdFG?=#*-;+($ zx0<(|ZXWy24ew?byp9Xsw99&{lI#hB>+|-#owT_XVd#e6(;+bUbsQ>vFR`f9Yo@9& za_-Y6OLU>;!5o9pV^niqnil-1B=)>(mG+MFeVnUM!dhCMI7o*$NKC0U{aS|y^s5QR zq#4beQOX-*E^kCiSHGKV6N8B74KNf_ZfH>RR!X>@D^~{UQs&DEZomtJb8&`I{+x)_ zs`?p^dByK!PFjCI+rc6Tp*M7f{vKi+m=bu`;*0S43|P}S62;4V_SAB*bNzHzu)JLG zPPzI(2l$c7`%>~p2}d(+hhZ0OugN+PU);)*pKF21Kj@*Or&+^4zs<%RCCpg@|BzR` zh<>5!SX)SLkr*JVGPEG?Vg5DR#RclZE9l5b_3Cb-ja)@x$5hb~Xkq1So>epoBJg>D=yIkn`D2`_jSOWFcKgnp3=2EQrc0PD zAHnIU%~b< zN;98+@*SIdl10%sw3X;5r+-P?PTmQ)inW?y&?IbWrie;_A3Y-%x`-5vx_%(UK0Ec( zfd^})0SBaVF7`@IwE_jbKI~t3f84X(e20wR0gn)Xn)V?e0CeTYM|iE+el$lhud2)h z_BHPxcMmhqoAi7aHLQ;f52Og%UjiTsK}@X9eqOBc*xLw$mDCwVVuzvd*8Ha1ZLAS5 zjexed*Z-Q(7m^@$vCa*zl?%aI^T)ibDZygOYi?SKpex0z-w%;%_7ybPN>Sh6`(AkV zP8=e1-tSPHUX+T7dAadGNj^Dt8eDR@1I{uW;8w{#KfE#suv|AgTvGIM zinddzy=F``_g9^PdIy&)!~cv4l%U- zqDzZ((Eg6R`@fQk3_9%w!}luHm-kul^>$Oh?&Wpei-R~6>oL|pX<}>~cgw`x7dU98 zdU;Zl+Zq^{zP>J}j}D#Ui&k3t@bOr<={_DOor0>-%DQ@i3w8htRR}vzY2Q~tT9b2* z>EOrlVe62$gdFN9Kxq6Oq6Vw86`vL%Yt@8$C4m@O*yrvda+M` z!aenv%}CL*ZpZ=t8c{G^uENU`*7@o9;2|^EcmEBCTBTI+W#8vrKluyF>GPffwJZ zb$8ZA$vd9wCw)#@+TQN}TZ4CbdaouOx4CbJb_+S*1A9F`$Gkh?z_EpoOAh6SCeaqo zKT>&lWbB?+nk|_0(hrJO^yv^CqN^+uB4A^W9=lKpF*b7K)dyW4AEWJi91H30sms#f zl=6cP_OHIMLvCGSU0rZw4;|qqqoIGGJ2w!m-mmAEMKwUodAW5~QwYZDT-Bn4lBvqI z?)24qeo^22VN-i!YZ%u0b)G)LY~K|JI;g8l^|M{_F^-7eJ2Dd}B0A`65Egm>UrT>ATw z_Z=G`POg-w`;oq$do##m^YwJ_J-dwM{^0xFaAaXIaiBLcmDmqL@w-G?V&(`~--0LG z&3`YxqhZ;mIl^rX4Pld$8x7_jHPBbKin8eE68J5!7mbVOt~u$04x!hG`Z&DZw)Z@a zjvR?PeWA!9>F;=1M(s8jx zwE9~tadKf_v7-BESb!7-@;F|Mu3>-@9BUg}Lb<;<#Z1~LXOG|hW-|_~$T|}#g&{pp zJb)PnIr*ztM+V;q>bz?h@ypBJ{!qU>m{G^vzE_18jz{iXf7S!#9EP)2F+QSS8((t8 zZ-+h@(|k;ek`e(Rv&1-K_0oU^q-V^Y4kkK{zsmJ*Q*IAo@Yzs3h*Q7;j`@dbx?@H! zUdW93zDL3i60={3PyZwozZ!vZ1yvfQ&)tEHDsU3hN?Fvdx26s50z^)4+wJ#a;)@E4 zgWWUnJfR!RFA1?T*9II!9m5MTe}3|cTDuv1c8FR1AP!|XY8qutkw-LyQ(0!Q%OT-# z)~q&ufwLPxljtZrQTs{OWd?6S7}=U0BjG1$-J;iopULCm;@e&0XO^PyL91?|w+VfR zVHIqWe$13%63<*{pKG2u$p|B+=}cPH7%N>EGjeQ8LXg2kQ&}2LOlv+PB+S=Qqmn$6 zO6%oc06F>LU%;^K?GOD`6oni$Z*h1swJYlEP)`U?ymq0Fx8->?OVHOs?;=a|?HC{3 zXY12Ghw5i#Dl^je*SKH!7sM?_Y<1e3J3X%sbPFNTr7*nSPsqcqGxF{hKBZ>vu|;TWq|Mnecz|osin?op#0n}a`AQF`~NN~bga+w zdV_&jSQw$D)B1M91Ah!?$14=~G3ZBezC%MY4$K|DxV5xYX%g!@98Iz16(Uo3#}c;? zVx36xbuUh?tk5+Mvk14_(p=M{%;`N56yZ==Aw@yAu;x*!A`$_^Ze9@^`eBWNm52xt zJ?i7PD@}|%rp9d9Eb%Qv-(_yZ>667(ddKv)frN35ah4k6GmR39CGInG6g9_MDNUak zO+>{`l72}CFB==GVHjWQ8wAw`&=|qX;%js61eNv3aGutplL;dP9_9>hyz{}d@9ws^ z=*nZ-?@JdG%j4+XYBj|=yYRz|H9${vtPB?>NcEW^DRFVzACu=Gx-Md1eOYLMW-(Ki zp|COr!F}|C(|dLD*F;~c!p%p=G&Us| zkpLT89cYy1F3dJgDWA&8H@}w4m$`d-jm#8bpfh*P+kbX?-MZMY@AOrT+#!Y*M~8f1 zq|u>*Ul0@EY!OyV455YfQ+sXxRYI$-*2Hj_CvIVKK!vpNSqw^)Z`%Z`f?nTFUo0!F z&0Ri(MDrfrRW;r2cAPhW+aA}woMiAsB~bArl*#JhVO8?f_uh%4>;vq5sJYOIkmD$@ zVToLP=;W=iSOM6sJa+M#`gmEM zHC(i|fGe=wTX2d%n9ypTvj<*;-Y*F^b zjsMk^!MAnANoPH{J6C+!!kj(S%^!)9<_n(Fo2=4fJ}E2#pNy^NXHHbV&7^Y0s+e|Y zlVy89&Wcg#J*Cc|za-K;j0!$Vte$kg-Ff;xoe_(%|3m{sQdXJ*n=C}kS|JZP3FjU( z8}I3ck8d<)y^b2Kx!D0Ug0H)?2!aMwEV!S&K5p+t>J9k*&40Hq=<0Io;_dZ3@8s>B z?9#q3T(t5d0A;;%^*&Uv<5#<@r51yjyh11M*N6`75Ki`DXl7ezK9?ly4s*|>2u0x8 zF+--%i6Wjw8q;XXk`&DHUKS-WQ0C(ioN4~?$`W#iG>Q8Ip@IH_IEuDgGdeP za}F09RKELP7TsG`7p@+r8GRgjXrAeO$IL1QiRzoxbVzL)-!*tz5Sp|6KA%sCA6dHU z|AU!m@ZB&!-%W#>P6cQ`)B;SR-etg;P%`H^q=M% zf1n(mzvmTtXG}h~rZsABTjW{eYTe+55_4r~G&%E0zX?NaPRi2&NuQ7>K!+;WbL7T; zwu3Ems>|b9?|HrPAu-Y0wNFg{v+VuQ4};fZy+O;j*Y4Qmqa$}uk4Fn%_lJr?(SH|XA9{pE|LKv=p_V8;PuZw!>7CIhUXPat(8p0&FqdS+gNxLWL!$D z;O*vjbA=*yk`q|~73EXb({p?`HQ@!+Doh}eUmo4|-)C%f*ckcA9vrNU&jX?FVrLHp zeK%@UE1=YXJD5uYy1Z75_w+4n(ugkX#O`R}e_p;6?}@5LZpOt=mqn87@4K9jP8ZJW}#Ulb>Xg<%;|=gf)Oj%q0_UwcbuNI&0?SFS4dfMHdZN|7==pJzq z2V7O2@bSABWI}WIt}l*)u1!zHdToEl#|0wXjOB@qGJ$HwLrs$8VmLOYcrZ(}gO=i3 zM4MTR1l``vd>+rYde4z=_o9LvI=^v0!?GLnaZ??*o^S0X=B`>NVN_ALruME%uhC#1yZQ$cTl7Kdq`3j&JZr5D0QR<% zljQv@x*!XVIq(q+*LxdLqBS2!WTaNQ^IC7js7)1_nb~7R%x}py`_-r6)2~hWBGH(e zf_o!L*m(XNXNR4}YTRdkGsu~NwU&7eW?o7pe>Kp1nPFCff&ni_QQWu!TNodQ zV;%3tzIa2wt$j`y3zI<9$|y<%*!b90;?3|vVcIf1?AX#*TrfEw9O9=>N!uGrUZ1^q z-*&QXUl!Ig1>de_5d{9-ItmTz)VEroQ@ze!BbmE&v$MUMHf^{^9zN!S=?M&6xyM@- zz~+QTvb&Urm_Tu96z|O+A4I~KyE}@wH&3DC2RqkNxx2J_)_XGpkwP%agy#Ur=ki7Z zQBk@Z{&RZ?BPT{cXZRM*(XqT_m~EFi>%}v>KYNT$>zFrI!o+SN4;{zMObg}Kt30`C zpk_7ZTW+-_I}#~~!D8HQNhtEuF#zdI3IS8(;4+CG&XtGNtV@VTATVn^kRb)Y?$i*V z%jd5v;BU=M(ITAxbtF396hG5`?-R~6>4!q_Nqz7QQ`N7~y~Fa)zk4BQ=o&mFWNl}+ zbFPb~3C@!oa7t$30odZz;IB*sKyN3!Vsm3DJk#?X-o%oP~;?C@WNYsJVMOdiD z4sw2)i@^Tuz99lfWWO&3gZsysnSV!fH(%e|KQYlmqGgP)$MM|ri05*N#W=7&9U69h zB6Bp7=JY$PPY>u_vcxb>-foCFMQ))wKn}|CsH~ZswprY&uJGQNd;C2L)~QidQIoLv z?w*^UkPl`VXPNkvvWaI>8&c~0vCW<`RkAa)C{5IJeD=!>fH`K`>p8RbdBL{-w4Yp@ zPXI;@xD1l!pSi(z(R*Oy%6;K8^o@1#mf!afE@njCb4B^ zc5GSKoP58`P^Q5_p-wp@zkk8saQw*+su#N2Q?XN(I@n6f#%2>_D}McE@%k|B@VeX% zI=Syd`*}zHjP(B(_Qyhl@BF#06@`U0BVMo4-MViw<<<%SMR<`gCF&q`Y$cA}AXD6n z^$+11r>9nAdTs`ki;F09%U2`g+a)*#W|oyF#9}gMZM@-PSn-J7z6TJZ?Dl6=J@wKPVqFS5Oz?`%qTh^%u3lr_s6;&GX;GFocH1 zcbj<&Iut&Rv$WK9t^ta<-gLO{|rM*I}UQyq*cz z^srPh*og0lLNW&e;}5UI$J`C*Ce+6!s}9g%wbOLc$_-0gu1(POY63+*2IjYfSh0IG z1tQXnt0EUMt`y7zW&(ez ze!iJ@5t`<{iXt~G%h60r`eE8o!VjbhMm_G~v1RV=kiQaL@6>IcD-w52)pmTy@;dOC zPq+zxpa5Ln-v5sKMM}@a9h_2}I?{&eb{&?9b$r}UUedT;@J%q(x`o?fwzm`RavgKs z0>SWm))e-kqh!^LtP_3omnkwYQ$9g3jR_I{z+s^S= zKO1{O*mp$ryFFcpm^+>D9&NC^RAB3PYK5E0mvBY^G zpeEovLnfy_CJtkSzQ zWo*G_nK#v&m5Ys8%yW1yab6V}HqXo#fj>KD$xmXvQJG&`yZst$Uu2gtJz~ml-Q!;! zJR+Xn0xtrp7JVLKeIQlq+j(8)>Yavu7BrA-E6__Jev{gw7`exhWePo6LOOP+21}c+ zXfB_y_XXMX5#5Z34qk0@aH+~M@sM4&mRJZFb;2S1aSz@mq;ZwyFC^3Bj1sZ8CYQ-n(AUf3Z?c}p?%L~b-&fZXG>?B5 zYap!ZV9j%McYOE$)a&x591Tr(a7Bf}epcqTAEiS0*>lIx{-@u;gaZ}yUHx>(S_}nH z*!Lf$MPSFO$+*Vq#OJ$q9ZVteG;2jUEHJ$?aKh!hsRR#&0y7^EI++k+)psf@)`TpM zy^xhlEN9N@lz_fR9k7b{(}9A1-MBwWPlN&sjw5%%jH}}G*)Y4hhPgb&^Y}C90Q4Rt zE$;rHxi{E-+rEZ<(H%zkx_>eFBKRzUb?njo-YK&q>W;g-Q?za;``gdE;Wzj;weG#u z%}1ah5fKdXxk_N2Q$ae+X?x4m(Xp%E4Pn=QCcx+7j7}jsJuGgOpdFfFZohK8w^AKZ z1_~>~RxSRzx~kuZHYI7m@B_q^^gf@W*MakR3)ih`JAd}vj^au$E+zoqp~N8^G~<}V zIeKi!v>$+ZOFfQ6Vy9B(r?PSwe2xa+9&$S{-}a~E39o{}dt}otkx;J4?_sq63Dec8 zYtN~v>77nZbz50K)mKcu_iO#)nteR~PZ+Ikkc!VW+eFdebgwAJ^&$k+se0jQDzwai z&>%OlhDh}h`xYx>qjHj0t@VPE(oZbTF$CwC%WYUr4j)(%JSmQNt9%K6`qA%I+9C-Hwxb#{(=--@T6YCM0{l zdwrUN9A21z{QWDEjh=FxP_JOu_6ZYuifweP_fP`p0qiWqG;^4#J9N6%wU1Ssf6imy zlpq)D-g@2dcCQRwuVcv!o*t(9UE1p@5qiL=X%l{JOf}u>RPIP(Lv5Jr54(vYhjIY$lm(5t2K&9;RjU-&+#g`IX=Z-c^_aGZ+2PZqr)k9wK{&9 z_1`!v@OJM`pFt$$KI#AwfK}TYDwGTvU`-BIt}CMAYWjF^hDm|@>YZHoDhkAmqoE{e z3(Q1C4-u$V=BBj6+7?9s$;wT`eWlFP7Onnr$cbweCA*A^1i%yN8J&jhJ3X0Laam11 zm{dv3EbpHf{WE8s``r~6dG~^9{B%F*U_bT&&G%Ws(8uLgR%2&dPVDw>_b}=LjWRE1 z%KoohZpm@4417(N-Chu`DMR$Hv{XI;F$YbDgy-eWt?|ug40Y*?H^ROTFZ-XWeO?x) zJ72$=p*O+#RR>n7*50&XRRz|#gOZ9OZvPl*dmqX0K%>)@P!7C#doW9(MFyKRNfNP( zgt5Fcvh`rr?}d}h?E5Ux_?H+t{3AzKd63}4*6We&^S$qVOB-SLRjdNxpCBp!be8RR zRN#v@AFH>?%|DMDoh=ntS5tR{gnG@@o?9SxboUyAPWkx<_eDWBmRT(NjzHwu;ol_K z#WyQO*1?dVHBn^BdPx(=T03|4aiv1J0}uxkI$k3k0cMfa3~K$LN9iR(Y* z#~0Bp=V5!ovHZFa_1Zof{~h#?Y>9hs(CbiVhy8u^u4_Zbt%w~Ut5Ab8%~QjRyiurS zy#IiQXootj(0%sp{<@I7m}uAYn0kk@++~f77^4Xi^$-}U(s^lb)9oO4IR;~o(T zyK?V*EowfKd5RZVweY$&Bh>ScQN?o5POW#IsbfZ&23<2PThiTaamr+KV`X3$?Qg1J?jzwV1Mj+Gd><95i8rQh00prio}ik6E`epte5w>71^&i z==?9vivyQ7|@6THtf=Aca*LdOTxGR20Czt)myKfm<3XYcMHXk@Q zJcF%ZQiy&Bj>xaMuB&yot?Ou0YcTPWeW+8x=Pw*eqpVR?_x=;<_BXOSY{K@1pmtp( zi~=;IlX|~nC~n*3K1xVfvDJltkg}%bss_M3$p1O^uDCdJkp^C6co_N0o%QvW|5+a% zU%bs7Sakqw`k+?&p$9eJLo3C!9jmVFA$PsK{hs-PzvBr_@cQC)v%32Z$rtPS<6G|0 zPBsf2w2$^IJp3F?SnKw%Z~eA6O1QhceE8Sp3B_`iaA-EMWmUWL&k)mk=eJc(IU(e! zCmMctoyhE*NwX$4%_>cWa_+mKH4=n?U5X&WPeP2PDjA6|Mo^pb@f0=}Jt!v_Ftt2W zB_hTz`P&(QZpNYMFX^%H0}l8!3^p8aV1=`b7P#v;WBxUOi-mCNXr28WGO(6n@LMr9 zUker^jn(%)0Wu|j)cp9@hD37e3y@Ur%R87zTAn`(f!2(D9C0QF#vmyOE2|QS3L!qD z-9;yr3mSo%xB!ohrgq`U3p_|=Y_^B8WF~8dHH*LPp}5p^ML<6U)b=jKOn;cttmKwe z%+yp%->Zo)tv{FSCJDlM+8puXQOoK*6OFPmNBHi%lUG$cI3g}gYL4%ThRGk0cf4ZO zZ#Y$JIz!HP45@jU#Jus2-i?kgd=f|)JmL!CiF}=!lF!KH>-4;hWcEHJZ@<@j-F&0} zP2*$OW=10m59$j-5yFRM(sLgKx4Y_%FD~ZFsi|$wlsX}SZZ4UfV`ItAj=49M4t96b zVqz-}sf%EMpPIEN{~ndwAq%TkaJsZ7SGZ7&4e@d3Ik=L^ecHq1cBE1!8$xy=nh;!L zWw-D{*Duo~1IZduRl!h)mgp9sm&y?RYRKkwhsUOs%-c6SfWSMJI(v!_H+(2yz-(PI zNP|%76u6R7VN@aEDCMpTTY>Z(y{`HGvf-rl%Ts+Gf;b3lH=^}^!#)Z&GCW{_K<7rJ zS*rvz23?v(u->Yv`MjQV$IKrJ##+<~kuJ1O-(5B%6vMNL0Y0Jm?i?3>Y`S~i3xWmV>3jqTXzxulE{Y^7`!}_a_3FX1#Nv&KpR_9i;H@dlT*GDEvvD|Hh1|i2U9kw6^nYCdkqaMV0!2*HVADv zG;9>N#=(hQ$NmEvF=|=G&fCigH_I2B*b2;NU7PrSOnrr4lzsCxB_RR}h;%JTOD)~P z64JFGAdO3REG;e(flWe_Lm}<+)7t)+rP%K%XBL06Np4bR!Hi-cY&;}e^0>*t zix5k7J&=H%wSgRnu#?HouYP~=inC&}rTxe+2+srL(DJ-mEbqAdDuo4+Rd%8_m2@^jYjH7f<@?CtHc?^Y9ofo2eI`q$x6vx^+I ziYvCeH{lHj6BpEo2+Bw~3$`+{%u!vzk-5k%<62w&^oE68e%OcIvCLNbI>fF3#;Xd7 zYV#n9YU7h&pVoF|rD!33cC4Lx58pUj$t>t zzxOVvMdhC)aQL|w4OceM){^MMj}Mz$lev6hqtSbRA+1epCP?}fP!NX$9A3|xb5cO6A{|g_BjQP1k3ccZ(Jh5d3Q^s*7hBJ` z1VN8rUnKXBelWi3`n@GlJiMI}qfSs-mK~cVaqTdLiShFwR+G~4Q=cRY^#Y|vCrHuP z=PVMxI=0OSdvgp3-e~UlgFC76+NFa322BxGPXvE|5H;pv^u1``?y+0UnW?FPwHVi% zLCBuP#crN*6h;j#4Iw}8-oR&GydnZJL7VU;L7b#Q&rfp%Tw>jIg1!NFReA}!KBApR zyCKcevdSn4w|JEW=PUT|Uds1M?u29KtQS7{DSj_LNlND3iNa7TSI4b<(zl~4*OT0> zhu7z>pLoXz&{h*@Tp(#Z=iPMsoAKP&|Jpz3;oh}mZ%@le^+I~9T{gUNK_A_i;r4)O z4z-{~gNi+XKBt*!@;7JkSxEX#M@AYM^8C1Ay?VW)@TK%bTEZJvvSd6y@j6^4k_)OB zq_c+2B}uxj@-Kc>>LEhm3(;C0@l6l#UVU+p<*8Es`%kmOb&w`wN zHJ7FR7QXF0cE?=S32HX2yi{iq!q6Hz8!=zrDOA3bl=<-jDjYoCPW@}CYR|)?(WWH7 zI$}Errx!pPBNsggw?r0&IE=YKW#YqPNwdr1n7ts7jb5jgrIZ7oX>;>KkbUIrWRBv( zT-)5JR>qKgYvpCeVczJ&UTUkYY|zE;u<@Fj>KobPPj|Lc5#s0+_+RieD^_|xY5x9U zsgtnna&2tk-1BZ`re@FO!o#ep!@en!4h7EEK)kzv)x2%hmX8bjXz9O z&hJzvM?=Nw_KUuM!Rq@lEBu^+%x00O;^28gc57MBkf#df(i(o)rwj46et3hcOgEZ* z%liF}xImIAbqgT)SVGZohx4xAwesuSdJVPeR#e&tx9kCX)x7Ivt9Uxa?VyL?wAGim zpit_c4PVmqSW4Jho6KlnMl`>Q-5<$L7wF6b`Xul_pI zdkK5*rd8%r9Uo)fpl7efwWm+^jhTj!E4Hv`exIXz4|_d%f)IRU6l1aapIK!IK?kh40M;2misy*LdOFLWt-| zCSP}x^Ey5Fn`LO z3ZR-0&_MqdyBHeNs$X;^XTU#yr@x5piv8^LmU0cgMeUrFYEh2bn%{1^qW4!t#I8DT z(|4@?4U=pW_457Ir*Y+#zZ#!v7^N;}+LnR`d3isg%o6cvNJ;fSh-Bx%T5(9(NZp|{ z4Hjwo2O@s%Ay1>*Zwf?BR8%QQb%e7Cz|f!GlIAs{PLVVge7VZ}Fww=Q#0Q1`p%Zs4 zwp3njs|*RI_-;>_-QRRD`i+@kc`fZY1cVlD@SPsx$)M&X8o;=p>Ck)cp2E}OuC#u zc+cks!bBR|*GrGVbk^R2AWx197%mZ?+i|hF|KZ`b<~IEv4?T#6w$r$%(W3kv{@>j6`_B6KZY6Ov@tyss^}qT|sAHG-HpM0)oVp3iKCSiS}^+~20DDj-)&NS`PfG3M1A zUej02vj;b1hUH}}YuIS=TMzT*2-o`Cxb=-XX(}rd%1Gw@@ihxLJvZ^XSl)cwW zD)IaDWHNc#x6u5dSL;pD%2h7R(A*_CLtyz6Jm!=2r7%cK+;QxRnqpJL(!DLa+m_cmgo0G_Won>x=91E8x9DSb0}n^{VX5P?fyXF+Sp9M5 zlU2Tl;!Y{k5OTKvV&Df^mH(JkzkV=$NEhboyhWgVI@3h6GxX1X-Q15^UJm+RAG?t; zq-5XatKpRDk~(A58mU0*v8}}aT;I}t1X-EtEjvL?XCo?A4X_S>jSLd_Sd^VH=YQOt zFGh3$i9r`>PlH@P){%W?8b($c=sJLg+uh@_cmCP+m)1=^S`s(2nA49|ujZUOGf8y2zj%jr=afL%xhE;m;POr*GymN| z{r&afT|4{1_$~5L%h<9f^B=&LtdmT#%JJ^99b|)ObWTt8nSuqiKGndo&|MzU2#y>$ zx*~Q?`Y)7l<< z*wpRcn4!MhE+6($-jBYk3;NxP7CcV;@0j;m@Rnv~V3{|IOEYmTI%7*;+3objm9P)w z%mP)+^g;xM#oZDxnjwBx>U_=rVG3L(JrKE6x>dx z2AP=fP=aY@G(=AVGA&`Mp_y?Zt~ zH<$Wt={C0hKw;!6;@d({93~Oc7^W44Hco70-l1S|#~fS?%X$P$bSoWP6xZ?Tih=)< zwo@%YttnLV5;@Q0BLG(6hyq6wUr4B?*7wrVq>`6_Q2v!P2?qLn35f!<%5iYj{CZX~ zt?c?lNRdY$vfdIrWl-Tl_rsSusL8yZ^0hwfYg3&*K8#osj1T(0Q=2bYN|?iIn+d_x zR%~>1uV1!ov`@YUyNGVxpU0W^Q{Hc`^zW+GT&k^{<%-=OMKRY!Mn>AfK)wscXsfy4 z8^_Lux!e75vorJCHDd9F8zA4kmp3^`LEgfWjr+y2C@`_LG^a{!NUR^WkLb8VOSG)e z@M!Hat}*B&_A!|ftdMI^T9BH)er6Cp{eht;Pg8)KoSh1iqCh|K zQLuu>H|%`TIDW_JN{<3SMeMVIflR)PXh=l$p4LU9uK{w9p2R`pmWXbv(pg(g?pW62DI_MAey8F&dVzjjM@Ri@-wFF2F+|{w<@X+c5 zf24gebq=hXpLAIOvInubxdyh~pNSsNC*DeTUiZEGIM%U~>VGmp65#2-FK-j zofPvU;>RXn8UOUk6}=tS85rnuPRnjvTC;M4lC56|JpUASPx3IZQ;_vPKye%Q{dR5O zrR}@Ipqtcp2XQH=TMzX+={IKd6?4-3JrL2&ylMJ&$!SycWoCSNRxG*b9JnyxEwdnl ze;~0zjyS;GVi{W39E03qXFnTSYL&_!zmUlSVEHH0t_kKf{BmVKAke6E9BdCr0{kav zMF-DHjISe+gE7Bc`)(803HRbE_+|a?E_)cSF6Ztf&vuTnGyv;qUpwAdw$FcF@=4R{ z*x~hG4wd}|R8h_9_?zx^+*;$aAn_MMq1&gz?A`v?wEO#MFiCjd%7-?o;@I%6m^uBk za(Xw9sEU@YeV(fP7RjF(!+#pd_WH$1_?CL<5)kp5ir)bUb1bLV>wxdDsFtu`IV z2vjGODTJRCD_IdpvB?8&VSn)}F-Hjkjxcg$f&d8wO6Ht=rjbw(;Mk?H$EQ8A)tVYB z6JJ`@q)s;X$Ujv|87GDmtf^7oYI-d7NdB=4yv4L+EC8s596W?KEwb^M zW2=J&lwL7sCfq6g8Nl!zgK|<^*#v+3?gNcn9-R-Vmi<6^|M|+}7JRo5r!^|m=qqs7 zKf=e@+0fqf=Wo=*%nsH+FC~zlLwWOo;L}6*#Ux5b@ZI(Lo9lDfrP@_m!(C~NoeOXu zz5AY;)~#5Tsb^upRx1#;QU0y|1@*2>V|L^7LYcWNx(0ReFwffKE*p#uOmOYwI{?R=+v7=tQ&W z;cv6Y9fdSTfr8bZAPnASR#oSPU5E7R25;SiT`JgIB|CKC)33K_U@cCukj}g9iY3F! zk&BOv-BLo0flT40sk$y6f7)<2~SqU_vmVVE+G z`o%L(hb$#rifD|j4z1vz_J%WmTh5oEPhii1E25H&9DH~g&Z%CK%-4hF{bLlmBWVJo=&1Dm6@ul?;9(a1IOcO$&)-OY~4 zxp;Yi2kfv#bD_Z#QvWrkIq7jlv=1N#Nam^fazSJcZ5>+eNWkyZs2a2qF!mUj-;w}) z&o31tV>`ONTBMQ#) zy{!tl5cT1b-Mnl=j}ft#fij#KdbNrWp;U8_go%poEmpE@B17=InEM@r8GUjI{tw^@ zWMd+`{BxOWg_+>3-+z_M5|A=x=NBv*m}^YTt}7U&FtVP?Naq4b(OJ)ock9h81-9JE zMeUrEefx4zT5W!OC@x8yl0`+3IjmwPzNI?7!Q3iywgnOxAW!5{b=up(ydtXD4m>Ax5+^^2DzEB6b~y@%dAc6^;M!kQk?zl z&F_yuDMco{lZ(=hOO2|jFK-p^U1CQ(yNW}S_gc^}OLyh4qG%BbnbDt#nIores9RsS ziTr!~mO|#(W2)`1)sqqOd@7Z4(8wGzMIa6n3Y7$zNO}T8dQIQ&rj&Bq{__+<<)fyS zE4??>JUd;XHqcEa)D?c3SqX+x@7|By*tEdT83mzAw$rliaHcZEV+}n$2n6{AvDYOK z3)1UoG4>nt7Ynw!urY0%=ujs5t6mgzJd#$cj9zX(K0B*-Ze#|L$MMH~DNb|Z!y?+W zgk4zH`^rvs>!mUc@27`R;q*cyUkm%D(uhDzvktg$DBTwlMSI5beX` z`nKBLGq4|n0%`qa1s=4PGRtF=>+RpS2A~37_)sYetoDsvJ@dca#NhEC4c6dS z%7{dw%d%!XPc7)r(s(mx%St}~x1>IQX|Au|3(jef4Vx`7y^q7UdcsTArOt%aNA)`V zC5~|2{k4BPi8*&62YDSm=2Q8>-gp66zgucSTv|$L+Br{XG;VtT1%oNj1NLjskyteO z3!|xc9aZdSoR1hWq^8TiM@RQQ3eORqMtzGGM!TApbwNT{*Np}}7gH(6lan7EYWVqS z{y7imcV6?rC(SRZ?o-PzJoG4CcqG=&L=l8Vc+W42_CR~)qHpihfl9&MU^QC{7}l-^ zWU_%+Nd2%H;C=@vc<3N{#4K0caO@x2jIF2|GFY0sy*OG;_sf9*d64RmfxJ#@AD0mA zCd`-jYHAuEGvXxwu!sCMD-xXx4`L#-P9PNU%pA{Fg$Ng~x0>$ZMG25|hKxm`RIDSj z4j`#P`Rm_ZY7e(0Z)zRt*AGVdi+e1dM2rdHeKV7$Cm_fq#`TNv${-ORdHJ_PLjgXuLlygb+MTd@bqE+ zGJX6fjS9L))7f}RbT1tHe3+)CoJH8W3wkzkTl~+GSN{;RAGGAr4fhg5&31;Txa>tc z9r>mQ{GVD;M(eMNC)qQt%V}foQ=iC#&8FGsMPFv8Qx>e(w>i%9E&+M|^7e967*{y# zt-fB0n+&?#unrO*yDX~m{fLEyH8?akv*i6bUNQ1y48pjT+*MZn)B@I70ZhrfVNls+ zzz6uieAop|A{&<_3Uy(^mj4z53;yF2E>Bh3@hcrcg_`-|99X-&G+DA9qTrWw z3Z3w#(oJC_cZEp)Hwi1D&x?b=Mprs(v`f#Mg@%h6hoH=nZZI??3yu$p66`rjZlm*k zlefv=D5$AF!~8y9|Cpc5*L9vLD%a)jSupci{UxD`3l1!WX~t@zYiYjvz0OBJjS7TPZYUyVgvqF!R0WeZw8sLj(;YP;YsaYT$H9;&~Q-h9I$&Mlmxe> z{d_Fk60;}`_ZtWwoych=k+r)_M+~Ti9}$ zY~@zu*@AqSTG0mCGP1i?@2_@8YPa2PUN7w=AFr;qY+hqE%lScGXapZLuI<`Yxoz`C=L z*F4Z>XOp5d0bfJhnU{5~04AN@#mby4h3b*A!OPRJ%ijUaI0=01-`q$W_VyU84S#$l z{_u%6)(aL_v)+8ncGM0)XhT5uP|#TUY?`rF)=^Vun)kAZ)+A|AllXbm49~dYQzl>h zg3~J=dPY7cnNLPj)A%pDkV3(-uu`2MPSz4at-Lppad8wx;|ELlan^5QL=M%fDu6pt z3_njsKV`n?*kKu6N({1lmSCHIA?z&TYGUU6;U+875lgU{l1z^a;Wc=sh7%7o+yYyP z7HIFGHc>N4v|^ih*Jcp}p~onNs(*{>ih@&PAD-UWP*ryOM@YM#^zO)I*&#%av3*pvvH8H)o31srm@}tBgd4ikr_i;;qf_5IGm(FD?x#* zE~kBQBOC5c@*9S;8T_D6vufgb^l{BsCfS63lQnBg4$FaM;`WR=%V8_6o$AWUYDg#q z|7E71>~2AJ_*ypmYY3*dsm`o-pm%-$OVU5gmhQ0Guj&F7-qk-x!w*<4c6X;%+Fl25 zg5owt7!io6VwEROAH`f@O1*#>Rzd4JbufG}eQ`?8jH=OT)UEV8o(A@~7lTXK?wW$K z4JXhRci_?lt&2eC!T-le&@)~Ln(@E;s96WLSHj+ipB0;C!WXD{>|E@644q7D$wyzi zirB%3S0}os!13#lh+4Iy?_Q1@IE#|}V*P`4M$WCKaXF_dTvTq%x*+ms6&n%m z1(gnVK~blT@~PC}kK~I>M&a^P_)G03o~CLY9Vq8^O&KS4`pwyCcq<-lpx=w;EqIWM zgS{>)o%6@iM%eD}opuX;SI?-K^WlYa|7H(aeE-mIC8S`IYkS*G4o8yB!*!i`lIQ9wDhq}34$vFoy zW3E2@e@xEz=yQ&N`Sm0V%v>UAabFjrr%RLzzd-zK-C_vAs#}#w1g7)Hk&@ElH?#e{ zSY6oAq+Dn-Vc#q20_Jm`Z=P%W@_a zN@SM?X|Z*N4Qhjp!gJ@uafna-m`H!NJX>(8ZLE@?xj5wj_Qs?BBHq>4@0kW5_{xo} z`CAsvHuvXJ+4rw=L!+PcX4uohv^wb4c8P}F0Lnaxnr>}U=YGOkrK1J8hTb0m;h7hv z;56O-RCYu3RmP0GIw;5nWaz0?Qi5^;kp_!ZT=k5I%Y4f`4lC()f03D+G($ng?q&bS zZb?4r_YA**2ACC4&Kdrw8PCH|aAb2i1)kJOoZpQD3b8Bu#WPGu#D{nOc5!?$2bsBe zxbmzM&Hny3Le&?Ff64x^{?xnuT$dJyeHgd07H$I@f_@wo%6MT9sjwd!q*L_3)(tnZT<|c)jxp z^BDApIKEEip$O#m*IeLz`Hk{1OR1Vf#qQG&{(DsiKAc-s4u;tQkAMPo%hvJw_hVE& zS)gdHaDH~Cl-BRk3c~W~99u6w>=Guo%$bFLA0$!^-Tg@@#UXIBFQx8`^$%Sj$?4_q zi5bKY=_2CCelsf6sxZ13^9xc(>Rg9tZsqV40T!&aj=JP&*r)5&54RqbnfA^8j6*H& zi!GV+oK?c-Y7^cNB=dvAcO_`*ngU9~((QN=aqw3D&-wZd$eV z4ZQaxyLcq|{%rDZAnM5P3T|3MZ)V&SY_wqw&DmwS5D!0!Thzxpo-l_n0`gaSqdVUx zqyY z3#EG=$6&(Yq-RVi6PkNnRM)P=hnCB>&wujDXgUU4!$=bhPrY1yQW(Y(4weHG{;++v zA_3yR{48;8p+wLXp^_RPBp2Ck{QoN3|^ zSBIQ9VG7iyYJ16-VaK+K+*9t^)4&>;VG>*R^UwBWo2n_0b->Z+Br&FLUP!B?o>3vg z7TvE30igWp)f1$Rp`qi!&3aExn7}k3?TDPF-*7!-p)BEPdP&aoMilqh&)+H}A&k%8 z@TLEZsjzd~1dna&cd>!o5O-_f@B=H@*o8Q zx>^MDoMn8nC2;xr(vCxpt&bikj$$JC!6I^$$8qdKgtp%pNK~(Po4G#{3m@yYm#>n98AkMJUwrCpt}h#D3S@s18PDS!L})x%i$>!`0> zlr?*mSVbZ`n7p4<-(okKYr-#KSggEfm&9XG1isqm%iVXm6hGLo(#4e@}&f% z$XCf>2qY&G{SwL4X}S$j)a9z0386kv{9H=J0A{Ko3NlhyK1~a2{hg~GuJT1ZE;nMB z@h2!i%w%=UDfCatcOHYM;GFMZ>a3?$^tx93piEblFgS3F0TF{7miV^&b4g=V-#W*B z41Hdh4nu%2LfaFbAdI%O#*ZfleQpUGqyrNzE@41GY(OiJ2ku!5nHjg(C4Y>ZZzletid#P#_Vh3;dB2XvTis^u1Pc1;ujF)!sF+^~VT8jQ{pwMD0 zWg|}62S!?DPF(gd-HL@H|M_8));PrPfsw*5`(tbF0W=v0g2)@cGEc>79O1`o@^pm~ zggSuamTH@hOdUN@CDzJVv{ARZUV+BSCzDz4eKY+`^n#5|wN^iO=naE>@IoLau@JCByq#aFWbzjw2V zD}c%o=OVRd=CeZbL%o5*n<LlZF|NdQR2~2o^#p;&XL75T+@-OZYRvoS6D30+_EwKFt-Jg8A#_+hPFc6 zNY7P!;bCFF-h8m2Ps@zQE0DK_i;$SC$9La{`0gAKz=;R7_+BTOyOdH%q%bs5HS=7qE#rOUv#D-$XZ!dDx(cH z$r)_3$GDI(mHPM1=!P;oH4bR@ash`IIXwBHpv}sSj(r9SYdf2QE|yU0NAZFP4m4Jv zPog=UEVSW>sYanzdx-w5wR&^azf{sx8jkE;Sa)ylCNmiW7C`XJiBqxxr&7pE9^|DE zj%%jrubDYW4EA8+4#&mjoTTEnpEH%0o|Tn`?#$e5#Bm{tUEFexO+SfqG3P@nOXRJ9 zn92A^4Dx6s0Y_pv4$MQ$>*z5#DanO}1uL%*fb!!SDH}Iy34jK=c>-nH#3y}uOhFA7 zkNOek@B&d+Hh+c^Z-s5-iThU{{GN{p#w#sF?VYI^t#=5Hr-{?lNqC-n)Pxz6moH)oM3v${ zNhUJ#+nDt;C1c3Fe${`;LqW znTtcw9N0)OPfslQN_bZ&9*`vjKN$?1w94dVjT9H_>KR}WFa&TGvVt}Mg5^JXbO}#+ zT3o|!L|WNFY6eR324Z-Di)<_yyg&ef1#!>H?|97602-C}Fx4aC%%#W+X_g+q+>dcT z67dI;(*KJ9rkULLa~kusrUKJjfzXjEt7KIqG(BLpl^u52rjKjWsH?(% z?{Fw7Gk`CTXTA-wA!1UepVsBcevNOXZ27|`j69|Jw%q=VnJ?x}mqASaP{Rmc% zev@E740oP%DnXVe8k{}w)yN4LumFXE7NK*6M%9_k#4ojP1#mWXo!?B8pSp*=)wU^% z7dm%%yy&g(;F7L-$junX@aNCMez698bxgF3P}&83;6~k% ztxp+A-s+ch7VtFxsSZFq7U)R|f5nU|YF*FVzk-w)@v|1M@ffRc`j|c#AFZFB79Bs* zP}iDjVq_)?vV|RuA|&))&3)*8gO|*P0rAo@KCzS#-BUXa+XxNZ=j@jgi5Nc3d9+z* z7x|`N%a4hx7iz3axa7nt7}i3(m53^Q zf@i1w=p1RQ&U>6a?spwdAN$GmH08qW$qlAoxzT#%X-CrhXcPMIBO(4{>LqDojdB^3qp*?*+13iNKOhHmTKL z2P-E|LXRdX>RtPkhR1`iV1f=SF{r>Jk@*TXZs9~nvNTO4r2t<3ZF6V*X2bq$L!{m^ z&mEs63xN75z%T&#__BxqoF1Ka9IwIzWl*ce%PsKI*jkK0NQ{}nau&|t=(Pydnfl-% zRjcz5eq#<`E~HVW@@dUi_+fTYlui=A=!6q3@~5$ix~+I)PZe-eMHFWc7fa6_e+2NS zC#xCqS+p)9vwb3~UP+%LzBS9p2P6!uf9dBAYseX2mGNf&mz`KdONB?jhExgRoCAPX zI7l)I*?y|mrGixQRYf<6W-$eHX^kLw`j^@7B7`8uQ{zEoq%@_14u#Sq+yI3gmGI$# z0d-*-;v<;8=63F2?9Hjn!x8!>qXf+iB`{giJN_b@N~?k@?z;O8q384G9kP>h7SZq^ zJ6S5=O&y|v#+s!soOaTMy?KwJ!YD)Sr23_>B#4_d9FB$I4r9j3=FFIFO3D-@MuY`C zN44fm)^D~6&*T<=(*wRV5-4R>P>Q+_A7tiX?XTmQj4`T#5^YsN&y5{R3U{qg2*sDf zyLl8Unor-HWz(rlMg03Whwv2~r8aqP**Z7gbe=QgP!O=KF<@mQ<^cwKC{Z(Xp@eOQhl)#GZ9Yzz-qI+1zp7c<@dlfk)0!x>9vOWwL?97KL$U)Wo1{H zD8GJz%^)li<$*$xr32Z)Phv^mL+G z*8`Jv{Zp>*^)n-o{?E#zbo3OF6#W9a_@K12!vf-sH(}98C)16#=NDf5BB~A_)xB*| z1t`hv(Pb}C9&gUSG=LDe`a$$w0ieS!cnD5X5L zP19NTK!h`>DDx2?Lz{`;ZursFQQ)~U^B=86=z#X3W)-Ek#;kH2k9&E__Nx8STLJFc zPf$9GVVMwzXJA$b9ZRVu+Kkakc`H>KkEeCcyDhUfR9fNq+6QIv6naz(88c)lu@gY9XH_5+BvT}|D01zh$x~(uP(QxRKYx+ zqz5hmWdlbY4tP-b&MGvj}n>%&VioqSQfel}dKaJd9E**z`v6XiXkpNR_Gk zCKRl@G^hpDD3mQeLDH#qrqODb1QhRN57ImNlm|UHxc;O$rDOI|e;VGL0@yTrnn|4j z-CYH5B6|@guk6Q|>F{RsFbz<7MA|QqT-mLhI?gq1C#6Tni4ToaivMQqRd=6r>0d4n zozcf;8I!3R_|w?=Ai{Q)?a?AU9!&A(QvUUCKfY`T3h5aM75@=GS}UnoQ`mIlLAL4G)*VrdpNyX$>}mS--}4c2MXhf#+6=0jG%d<{Q{R|l zIOJq|s6M#3bdxjr7(=Cq20xB4S&*o2{tfUjcENbOE?_}`F}t;PP%83^5X=)=0suz* z0DwqpBHUF+`6shHRn^=RIhHBwEJv3X1F*Sj5NG-<=)IHwg3xOW(%-kYjD_~k%J)R} zs3ruX#&{Z_rjBg%pWBT-=~oF(+6}XW@84` zro5>Z5Cr@QUw;D}$lzZGNh`)MoT6$3SjgC|K#px*kpF{eOJ)2kG0KU-6AG^@k#++) zk{8qE9$UP*M!S$IQ0n6!{@PrT3IQu;NU%Im%BBd+j=&UB|HjUbMj(Jp4uEG!v>2&E zc+{CSV*{)<;>!rLz7)eEbjV}5>;^R4=Q*7LV-Y&M6xX^Na;gY=C?mAwwI+vMMYkB~ zCL4pXh@i$aVRysBzO^2X!o^i3-$qSg@Zp0|P4BA16T1Fdw@5HKPFOSL}3BVND_H zO>qHHeSCEm@XO(REsJNiY_j;Fw8V=}&|=53q?mO?Zn0Nh3wjWCYF5SEB*@QY9wnKO z=<<2_B2i*9QY}5yk5gm+MgK>IvSMGqVF_<)#&lxl8L9YK;}O5opiVS0or5hE@@}yQ z9TP1PuS=GBy)Vp6ADEctZB6A@##P6(Wn6QQ&W!9=R9T9$UH7kfs^;0_-Xl&`#-7uEOO&S52HvgXd^ZnhFWYn9eYw0fQl}{ zZt}dCN4`h2AmoKfs;0UzJa;r>F&wP(Lj8z0sbi4M@tn`{>AD49Yg2>Qd%o|!)f+%c zSHPb{HTrYDa1t&KNZ;kEaQPcj4ZvXcXTvz89~zkrUJ+BBH(u!Y*^>C@b8d+jomI{& z{14G!UMO@vLxSi^G|v-_tFum(Ztf+#mkO)*%p8|QmHv+PZfrI)-qT5>P_fZSi&90C z>v8^AOiWp9hh3~K2&nl_Ij{HZnRT=|X*_xwQO;K2e|h7^tz;<(6P!uMmN4b`M_j4l zi_Td){`1gnefzh*)n%#OTUpJf3b7yUyO}Vyl-jCTr{0qpKBA=id4d+?#Gb6;wHXcA zwZw*wG4o_LZ`QW|2@iw6(yvR=35OK2Ed!~NaN7raDKwRPvmxB9n08jUHn-ky_PXf=^Z`)$yQg7 zIW`G>bC*2E64eA4>s$;_(7iHooX_#uB?wu_zA)2sUptsXfo&k$LREiKC4w)4Kur-p)lxA zD8Q0K?I{@nojeOPJ?%?9}I~{V&r|l z|A716j8FxN;c%3r;{9^fR7^|7VTi0=o{6NwI@cZhzBLS5xgP&kZqJ&Y;d8I# ze>#dC_u8`{{dCrgU7+ns*43EwVYCh54*m(^!%Jox@k$-)FuUBK)7HM1h|X6=O#&MqmF)I4m-FZ#>r9fz&@k}Q)5 z6|pmrCLOL&;88eF7r3OiKG1%a(+c)V_T1EE(tdv%ITiGzM2~MyY%_$2*(dmO$*Ojs zguX?8z&p)W5mjUNjFF2!7?*N6m#cm>izcEbj$^c=&Gh}|RmJ*xI+pyt{*x*aRXC4h zDFs3I@OZS+$9GhOHlX?62Q{O}q!-B^Rw&~g{Y&$s%IFt{6l~y$+ySZ{fzsF0J_vI- z+`xDaqzPN<0@hxdNeqH@y}7Wf&WMRA}!y1Jk}p{+6f0NRR2{Q*F4(t_*< zT8@r{TujuDFd0e{O^@ndMzAEsq6olG04rxGcVWN)D) z@+Gg`UofSacEcv{&kx`Idm;O|3dKf;{Qhy;Y`Rpem{4PW5eaQ(0k90t9;d!x)~Vu{ zUqxSQ-4JqLd?2~2IpEytT-X!F;?b9sX85x#UydL4-3Dz^@IOt!^!+yIbxmh{jvsb7 zJNODS*=gj1D5`8^w7>{~6l`W^d`weL=L-&rad1oSLdv7$p`rcrpV#0q`Iv{)-7OBRrJs)5OFQ-US+RRnwv?&N%eF@I8CUKPYQnTa zS2r^ZUfUXKR8{#Gk&aBZvbV$)P#E6kNDTlMgvdKZh6D?X)&<>ozv?)cb`s^luc&Mp z>N0>YDFRov$s;&2DQb09;)r?&=>Tk5gr_<@I8d2N&kUJ@+G`Cj&`&N)e?;y^+fdLu zIGPmd`nP(n%ma2h*?D?KNkrrF>fU~1^pUP=*#FQP{CWBEMc<~}9rX;tMviS$F*!-4 zDLz#&+W$G)-_P_+{^ouZeWX2HTu%5=@;n@y^3m{{dczr!?E0bhag2C;^mrWWT#z*? zVPs^+EA-#z9n1{G&u{iP%*%`*m!k=B1iD~ME5vzu&0?(g^PnqkIT-=S7QGi#C!oVt zfCSHlJY6IgfZ^agU3r|!r9J5g!J}ZxK5GVF9_o9eoj8Y_(wAT~Sfqe+>yIz(F+tk3 z_KRx2i$a@$1#c~6V!&}-ZDLG($?%bWeH}YH)@No038@tg#*hJl;?(H|!kwF0jD`p z`es<~8=aw8Qb88c0OL@B5yZT09WT5d(PA)DVdIk?lLDHu$ZHqZj?y7rq&67NvS0&y zJ%wulPjxKJ9-pd5JMcRHpde2dFnm?|;>Bbb+xpwHrYS1h$&0t9#^DnU?b)W!H|2RU zKUK8szvzhqzcuf?6dIy_kc%=8s!R9U7G(pBVx8(J3e|u&DRe3^QVO~_aL0$gAc!+f zFHA4|$E66NV+xe%=`%3Hi?q-k&5X0KB(?SpWRGCoSS z=ENx>Er^73^KvD)>3pEtFzEiP3i3I(VymuGDU#2jgQ8p48n`JdNg1UB^4J8&*{T?H zWs+KlER6B-c|h65Wzj&F7svtO(*mnJ#Z3vp0SuSjn3!<(M3cZ5k#L+ zf+2c|=yK-$o%g-Ybv~Sb;Oq~3e_Get&sytx+IsHihO5D1EN~656dJ8Gg?#WxZ0Qip zpZktoZTj41^

d?6>%}<$uw3OkLiAWYG7F)fd2tY--FuDlUOLRKL7;R&Wxj1vjF$ z27OV9jhpTg36Euf)@Q$GDV)6%d|Q+{o&A`r%-|cw_kPfJ9?i;}Uu7QCwd^}AAD%R;D)^(nG975&$mfO8;y#CU)wI@=EY^+T z%MIj|*KWdWawN1igPsIow<2eB$g?8tc`}#|#iD<|EL2Avsh#cR6;ze{ACcqf6UXSK zL(c$Oo*IQ!3Uai!p^5r^3``UHt$hz|H?j~n-OEYUv5a9hHMI4%2X*-|ON$gPHsTx) z#S@fA5-4-^CQG76R(`pT25)rp3VkhpsQbKiOvzc3 za_rV^eNSxeV*%G~^g#<|nlFmeKN&PShsDvTDP8#zd^| z0?913-D=JoIA=In_D~enG=91Qbc5u&xEKeYk&;Yk86z}g=wyJAnlZ_T?#q^Szi(b} zTmSH-Oq`c~^mj-9&|aXAbW+;B4UmTYP96@11CTt5;xR8`efg-g zf)}A$v<0TB21vPU5(Z%p1)MpcC0J%?;xS@kZPjfv`m0w9@4t!A&S#oaB9=|(*W^k? z6gCd2H+;w^6dQ8FG)Lg&y%qLBI1)s`Mq8Kmcnwu>w-2G8yS0MdB>)OyYrA(VxB z!}%16B}qpYsiHhSNGf9(UPhoOMcUgc|2WVa|{)Rr#Xl z``0q}*Xce_U#RxVX6G6cQ>jN-OIfvs9mO1093p4Jc*pfeMiB9CrOH6a5k3K!IXQ_Lu?G# z^KWg)ar~We&(7$hvpT9gA86?5%b5Dv3X`%)XnhNK6S-67Is%n_eQZp3uoza;^%dVU zeB%{q^QYD>b_GfXT6Dht9%ZB}d&2&ADm#Mifk8}!qBVQIX8+xnT0XY$2RFGQx?L=R z6yj@Rl`B2cx_7?IkUJ}Fd*-_qrW!wPMxQ-z2#U`=XKr43^spw_8z?ezD*d*_A<6dR z33E*DO%ctP_k}qXdt#ak?+FZ+s>krcyltQ?rk1zrnG%1)@@$C6druKyJ9!JWTc5Ef zaPk|nGuZ~3)BEDzh-tx@AKUlcGoIu-|Ju=VmW}&_+9S&b-AWtG1g^pvd+^}9;zWUO zaoyOa6#-6cVNSxNqeDWCX8H_vc~Fx7;Yk_`SJY~du%Ws+CBaEiH-+gY8%Ho-;Cpiq z*mYT~^rv&#l$a=c~8DYScQelo^s$ zJdoo+e^&djb8>aCOqv)Kr32MktktiT9$Y7Tcpnvf(AN9F?nLudbG12drcOi-6EJAn z#LD5yOI#a4l20NDbV6JAF?+H12w&fjt5Lu1Xfo2s!&AKaIP0ZTw^QAF=k2q2&*cja%1xpXy0)OkYVK<+}v=m2yA4XM9lGR?B-sG=)Nv zSb0kF3XaOe4O9iaAo?t>*FRbv&)UnE!L~OK&Z*}|2920eV8Ta^b_4LmcA!u zD{Xcb6`A?nzhmvqpehCYkAntHig>SEsx0U9=u5!)GG}UP;bYd$(l9=#AuA)bZ&-OXfk5=`5%1Y4!@>9V*KPQ=hg4TBWgLVf$rxn%!jJ6n_ZgrZ_0kn; zWUwu)T#%%4M|CFGkdF#i;``E=);e5JGUWk|LQypyT}O89=bVxNquTLT((9Feo%45s?H;eGsoQ0rU%gcRRk>1y z^)pV*LUTj2pxn}{{FKr-#O^N-rqU_BCTiy|m<9U*){7)xz^=46vS&V5|eeg2>_2#HV zk#bC@=H98+%ex(6|NMMh)&L^_2r((?KqC5?Lt5*6 zuO-BWQ>VJZSK`bkGJ3KL9j0jMiW3-O?#(T^$Kr@Rt%gV)VX&Dcg1T}_JtN`%69oS54fkavTLg+O^KW67z)#cJP9Tf~hvU4~@o(noF{K+1c00|~rXF8wNL z8LH166vToQs7+3Yk2-ePrTlg&xkBh{;MMnm72pcYI-9BVV|qv=k-G4FEp-jLLo787_6P>=|OrT9`?ET9Ohep6RmuGKhrXFi_ zZvCqbotd+;{h7Xv{N+Q|$5-IDYcWFj(e%?nL2+amM8#Fp^qud$9h#tuA{E=L${2GG z7TiG4A_)bE&nm32lyb4o;wiFb8WiPrvmf;ia)aZ+jnWDx(mPGYe%&tKkCd5iBgMZN z^5^k~Tq+DdEhAo~&sjAp7q!~`j=RonAIf_VFK@nXbmzlSfkGVF zfGh`0jbXBYip8cvoozOPbQk)nKO)s$BrHJ=NEh)vLFr3a58T*K;EOlEMNBjZ^-5L@ z!QV4{Km9dIlp4(*YPoT4DQ>h{SDa1R-+Uom+2Tx-cmxcflk1>hH~HG11}1D$&mzb( zHyOnBJfBKAXCyaeAoo{3hp^U}T~7R^4`R*wKcc@W#Yov^#P4DQPK6Lz=|{2ldVTu3 zm|HYD&96Z!7L&TxDe#Ln`TPpHpBB3F_vEz&9ZDH%lIm2p)L}oA$SHA|KLrvQ!3a(o zw81s7C9lQx=lHgf3~#5#(JZ|ghtyyzadVd${6x4f>kE;t?J*!@M)_^aSJm<6Z4B~$ zS`Gutlbzv(pTVjg_@|^|g~dmN$y#~Kj_}6WiR(C)rSs$`RZ-Kz z)zC@Y?unUN=i-0oT~%~=Q@@hI)BhM)bkZ+4jA+HgB)F|QH5gQ3wL#@Qf^rS1WJ}k$ zepR)Zz^R@jlFRC#!L<9d>9Wg01N_p5=OPu+Nqp-Yejq__@vZbavI>q3GQ!KiT6vI&;t#xAr!=nQ-uA zCfJx)#bA|%sc8V;U$HWqUi5iaM=mguHwBzZ?QWGQL6(C!-(q=-;0{s?h1NUB>6`R@ zYL5ZvfoDAt=8thz8yUhjP#;L<{#;4PLi^>09vO@DiP5;o@xKl{6FqE!(z}lsg~KH! z&!#t#C4HFI!HW2=cP+onJ<3$@ieF(NVA^rOTj8JMe$Gp=={gm4mU^5D%6hb3Vj?Lye zjwUshbaKaj(fj_JT(}k7LyZe$B&o*7o9W<(;YM291@?E4bFUr@sJ?n&Qt0Y!l+ML> z=j-ckrE+l z@}LYQK@CVYI7ksAFqirc5>~jH z_eZW&VZW_hjEAEXbnIZ?UNFN7BIyGHN->{kF-uDDo*TWF^~Gv2UNde3pr`an~yCfdEKcA{qjOxpJY1Bm{>7nA73K6L zb;YdHgei8;G`$XA{}MTa^A#fX(!yCU)I4Pfj@ZeQE|rc?IOM?Gd)kJ1?@N)_u%0x*2bv|uQ zRXK~M?H!EK@uYuN{ZzWf;~_8INW7dxqQstyTbem7jM@{b*y9661~ow?~9y`+Eav8DO?y@&4R`i5zZ}D z4riu~(P0ks(N0i`lJbd-uU;9#mz7P8Z-PjvUy%gJJoP(KSqb=Xi)wz}dS}5qaJqRx zyQd34*02Ym)*60bDm_bbp>M67=e_{$^o!EbC*CBIl?&IU+(?C3@eMgVC%l6bLzFc} z{sGlNznr|Ju{c+5H|K1LB2}%y4@DIXyJow1@rldjUu}G65n*W$>L8K5&D(~8M(}(e z%I=|hdy5<)=t9`ON9QPN8TfP2vGpkAn?n&M1S9+#cW1sBu<(e(HB`k2tvPdlYiaZo)Ha=*WS>^wkhs@!$5JHbLn{Jr!P$e?Ce=?|o7UYUlja{}gNbKIu z_j#d-v420N!xs%VN!Un2wVV=eHwjz6cc|>&ChyDUtna;OCJc`#!1WYXwDHww+d(~l zwd08oKDfJU7rqh=q~4CtSE<6Y&&9S5r{q0c>UXn%PS`Cwz0KsRO<@&2dh2^&>l}i> zF==t7R=?zMnOUiIJ&&yD7JfUe{@O(<%xWvMR*dC#n6)DA^4%rgYfk}rBX^o_XO+11rygJta`cfi$~p+7cKF*}fky~m{+M~vc;Q@y3g96vS{{^}C5 zI7`N*=thoTwCKM6ETDT7%9SN?!M#{}?r{2cVy}~&6_J&Y3N4amZp#5P)El}1zV0c2%t!UC_7_`4o{*!% z=mcNRM7vh9@wj)8$hkioAIL|%ZXw<3EkCh-*`jWkKNH34GaZx>rMkSTd)YZcY2up1|}gPdQd?~iR~dV&y@;&33Ow* zA}l#Eg2QL{uyN*In+;C*Ed|d&tvPF4>#t@JJyQbZkKYBl2I~P_-Bf;>jYV;^SZ3@B z)@u8;&HcQWq2=UiSh#|Es)U+n1u%lYu5^37G!wr1gCFE4$VF8&t>qcGem>r@=^z5Z zc|CHT+8i3E@7SwWhyCtl3XcH%vk?Kz*g(apsX$qcoQuPg&$l{HU8jW9VQ_^rei}q! zy1j0qA;Pg@LeZN^!6BwJr1cSGGs&lEQ1JCJbGqI06@Nk@hR1s6qe-u${33xw9-zMS z7+)gFgx^|3N|h4{+|RDkefE5|hT^r6a-a-awm7DyKG)bSh3vDHmckg(j z_SlopuoKEFONJ{JMJ*3ux_2iO`fzlFe3&*$X%?(q)2ahgI|jdg+B{RKHeReg9uZ;K z*%bfeY-njU0`Ked%io)|OZB;jo)%jEjub!wI`P1GjIhIQsZPH%nDq@i**#>!RUD;h z{SBjBu+hw)tiz{`u!IZg@JV0@Wt%7PJKL>Ju9^+m_A%A%e;x%Mn+#S5(2YF&N9kTv z&pLF-VK{cZI-kJ&uAWy$M<6%*b}l|lwp4iR36c=DDD@(?mpb=1Tu*Zrz3G=_KvM z2dp#02~)M_1BKdv8xL!{Z5GjY#W$AvPF*`3bxe;9pBBb8cE4P zolmx}{FHgw({p%o>GI5{XMn?R2PUbXso_qqPbkP0dyTxuf2j4{Bz1Mi`X1L>RCII# zVD+?ry~vWI?r~!*rCmHr z(eYEQg=O?L*&x!Ozw~I>!j;z;F`g0IJwCrN>MZ@uZ+Sp8mdgHV6;@rPe)*NxI$k5> ze7cp@_gH6F=18dDD!0tP*aJOl?KUN+`U_eV?Gi^m;1LIk+Ow64nSB_7O15T+;Vl)4 zZ!2$HF_wsQKU(#J!(hU4uB@*NpRfb!ee%%%tEqL)JoFpJ)iAJPLWAm@f>=;Q)3%>+Kp!eWKUp(x6 zgf@$eSUDB;&!$}qBerF}T@d@pedJsATW{f=F`KvaOD3VicWLTBwnF4JLJTfzAMNDEp6}-}ueH^VbWuLoojFq1j2{OwU;p9T**@&whg5m7P zNFp?%X-3!%qlJhrJL?fl-mv3eeNrZ@R+!%JeL2bzwR$jaPDS#ML%{QXW+7=K6n@ZB#`s}k0poxWLh{8czeG6Y!$ylIh++GMTNc0*ELn_2fm|6&sdK! zo7P#?DJCFIJ%H6hv-?`Bw!gW$7}OIO6!HJnX2%rR`M>{TJ9B~a z?OOJ;lH>XFyQbC2k#Ul7)tKhRnBk znS7j6WJ}z7Wz(KF`9Jf^!qBQPA`OLL$++{&Vm|j#ED((WAW%8KF`YOCX!VZO@9$0{ZH0XZbK<=m#!#)qiWXV3?}I1Kz%QipQA)>@k#Wlgo;Xn!2%$VBnae1Wz_k94RCa}vP1g(zX#mXUMBlzEnh0A K!>Z(7z58GKnZTI< literal 0 HcmV?d00001 diff --git a/_examples/sample1.jpg b/_examples/images/sample1.jpg similarity index 100% rename from _examples/sample1.jpg rename to _examples/images/sample1.jpg diff --git a/_examples/sample2.jpg b/_examples/images/sample2.jpg similarity index 100% rename from _examples/sample2.jpg rename to _examples/images/sample2.jpg diff --git a/_examples/sample3.jpg b/_examples/images/sample3.jpg similarity index 100% rename from _examples/sample3.jpg rename to _examples/images/sample3.jpg diff --git a/_examples/sample4.jpg b/_examples/images/sample4.jpg similarity index 100% rename from _examples/sample4.jpg rename to _examples/images/sample4.jpg diff --git a/go.mod b/go.mod index 6985773..e458019 100644 --- a/go.mod +++ b/go.mod @@ -1,10 +1,19 @@ module github.com/corona10/goimagehash -go 1.20 +go 1.21 -require github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 +toolchain go1.22.0 require ( - github.com/anthonynsimon/bild v0.13.0 // indirect - golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 // indirect + github.com/anthonynsimon/bild v0.13.0 + github.com/gen2brain/avif v0.3.1 + github.com/spakin/netpbm v1.3.0 + golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 + golang.org/x/image v0.0.0-20190703141733-d6a02ce849c9 +) + +require ( + github.com/ebitengine/purego v0.7.1 // indirect + github.com/tetratelabs/wazero v1.7.1 // indirect + golang.org/x/sys v0.19.0 // indirect ) diff --git a/go.sum b/go.sum index 6d5bf68..d961400 100644 --- a/go.sum +++ b/go.sum @@ -7,17 +7,21 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/ebitengine/purego v0.7.1 h1:6/55d26lG3o9VCZX8lping+bZcmShseiqlh2bnUDiPA= +github.com/ebitengine/purego v0.7.1/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gen2brain/avif v0.3.1 h1:womS2LKvhS/dSR3zIKUxtJW+riGlY48akGWqc+YgHtE= +github.com/gen2brain/avif v0.3.1/go.mod h1:s9sI2zo2cF6EdyRVCtnIfwL/Qb3k0TkOIEsz6ovK1ms= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ= -github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/spakin/netpbm v1.3.0 h1:eDX7VvrkN5sHXW0luZXRA4AKDlLmu0E5sNxJ7VSTwxc= +github.com/spakin/netpbm v1.3.0/go.mod h1:Q+ep6vNv1G44qSWp0wt3Y9o1m/QXjmaXZIFC0PMVpq0= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= @@ -25,13 +29,18 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6 github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/tetratelabs/wazero v1.7.1 h1:QtSfd6KLc41DIMpDYlJdoMc6k7QTN246DM2+n2Y/Dx8= +github.com/tetratelabs/wazero v1.7.1/go.mod h1:ytl6Zuh20R/eROuyDaGPkp82O9C/DJfXAwJfQ3X6/7Y= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 h1:aAcj0Da7eBAtrTp03QXWvm88pSyOt+UgdZw2BFZ+lEw= golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ= +golang.org/x/image v0.0.0-20190703141733-d6a02ce849c9 h1:uc17S921SPw5F2gJo7slQ3aqvr2RwpL7eb3+DZncu3s= golang.org/x/image v0.0.0-20190703141733-d6a02ce849c9/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/hashImage/__init__.py b/hashImage/__init__.py new file mode 100644 index 0000000..b09bd68 --- /dev/null +++ b/hashImage/__init__.py @@ -0,0 +1,5 @@ +from __future__ import annotations + +from .hashImage import main + +__all__ = ('main',) diff --git a/hashImage/__main__.py b/hashImage/__main__.py new file mode 100644 index 0000000..ab64d5d --- /dev/null +++ b/hashImage/__main__.py @@ -0,0 +1,5 @@ +from __future__ import annotations + +from . import hashImage + +print(hashImage.main()) diff --git a/hashImage/hashImage.py b/hashImage/hashImage.py new file mode 100644 index 0000000..a26bc46 --- /dev/null +++ b/hashImage/hashImage.py @@ -0,0 +1,27 @@ +from __future__ import annotations + +import argparse + +import imagehash +from PIL import Image + + +def bin_str(hash): + return ''.join(str(b) for b in 1 * hash.hash.flatten()) + + +def main(args: list[str] | None = None) -> str: + ap = argparse.ArgumentParser() + ap.add_argument('-file', required=True) + opts = ap.parse_args(args) + im = Image.open(opts.file) + + return ( + f'ahash: {bin_str(imagehash.average_hash(im))}\n' + f'dhash: {bin_str(imagehash.dhash(im))}\n' + f'phash: {bin_str(imagehash.phash(im))}' + ) + + +if __name__ == '__main__': + print(main()) diff --git a/hashImage/main.go b/hashImage/main.go new file mode 100644 index 0000000..348cce2 --- /dev/null +++ b/hashImage/main.go @@ -0,0 +1,77 @@ +package main + +import ( + "flag" + "fmt" + "image" + _ "image/gif" + _ "image/jpeg" + _ "image/png" + "log" + "os" + + _ "github.com/spakin/netpbm" + + "github.com/corona10/goimagehash" + _ "github.com/gen2brain/avif" + _ "golang.org/x/image/bmp" + _ "golang.org/x/image/tiff" + _ "golang.org/x/image/webp" +) + +func main() { + imPath := flag.String("file", "", "image file to hash") + flag.Parse() + if imPath == nil || *imPath == "" { + flag.Usage() + os.Exit(1) + } + + file, err := os.Open(*imPath) + if err != nil { + log.Printf("Failed to open file %s: %s", *imPath, err) + os.Exit(1) + } + defer file.Close() + im, format, err := image.Decode(file) + if err != nil { + msg := fmt.Sprintf("Failed to decode Image: %s", err) + log.Println(msg) + os.Exit(1) + } + + if format == "webp" { + if ycbcr, ok := im.(*image.YCbCr); ok { + im = goimagehash.FancyUpscale(ycbcr) + } + } + + var ( + ahash *goimagehash.ImageHash + dhash *goimagehash.ImageHash + phash *goimagehash.ImageHash + ) + + ahash, err = goimagehash.AverageHash(im) + if err != nil { + msg := fmt.Sprintf("Failed to ahash Image: %s", err) + log.Println(msg) + os.Exit(1) + } + dhash, err = goimagehash.DifferenceHash(im) + if err != nil { + msg := fmt.Sprintf("Failed to dhash Image: %s", err) + log.Println(msg) + os.Exit(1) + } + phash, err = goimagehash.PerceptionHash(im) + if err != nil { + msg := fmt.Sprintf("Failed to phash Image: %s", err) + log.Println(msg) + os.Exit(1) + } + + fmt.Printf("ahash: %s\n", ahash.BinString()) + fmt.Printf("dhash: %s\n", dhash.BinString()) + fmt.Printf("phash: %s\n", phash.BinString()) +} diff --git a/imagehash.go b/imagehash.go index 6af7655..4f8e73f 100644 --- a/imagehash.go +++ b/imagehash.go @@ -142,23 +142,13 @@ func ImageHashFromString(s string) (*ImageHash, error) { } // String returns a hex representation of the hash -func (h *ImageHash) String(bin bool) string { - strFmt := strFmtHex - if bin { - strFmt = strFmtBin - } - kindStr := "" - switch h.kind { - case AHash: - kindStr = "a" - case PHash: - kindStr = "p" - case DHash: - kindStr = "d" - case WHash: - kindStr = "w" - } - return fmt.Sprintf(strFmt, kindStr, h.hash) +func (h *ImageHash) String() string { + return fmt.Sprintf("%016x", h.hash) +} + +// String returns a binary representation of the hash +func (h *ImageHash) BinString() string { + return fmt.Sprintf("%064b", h.hash) } // NewExtImageHash function creates a new big hash @@ -166,7 +156,7 @@ func NewExtImageHash(hash []uint64, kind Kind, bits int) *ExtImageHash { return &ExtImageHash{hash: hash, kind: kind, bits: bits} } -// Bits method returns an actual hash bit size +// Bits method returns the hash bit size func (h *ExtImageHash) Bits() int { return h.bits } diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..2c3623c --- /dev/null +++ b/setup.cfg @@ -0,0 +1,20 @@ +[metadata] +name = hashImage +long_description = file: README.md +long_description_content_type = text/markdown +license = BSD-2-Clause +license_files = LICENSE +classifiers = + License :: OSI Approved :: BSD License + +[testenv] +description = Test go imagehash +deps = + pytest>=7 + imagehash +commands = + python -m pytest {posargs:.} + +[flake8] +max-line-length = 120 +extend-ignore = E203, E501, A003, A005, T202, E701 diff --git a/test/conftest.py b/test/conftest.py new file mode 100644 index 0000000..1fbbead --- /dev/null +++ b/test/conftest.py @@ -0,0 +1,97 @@ +from __future__ import annotations + +import pathlib + +import _pytest.terminal +import pytest + +_pytest.terminal._color_for_type['incompatible'] = 'red' +_pytest.terminal._color_for_type['passable'] = 'yellow' +_pytest.terminal._color_for_type['compatible'] = 'green' +_pytest.terminal._color_for_type['exact'] = 'green' + + +@pytest.hookimpl +def pytest_report_teststatus(report, config): + """Customizes the reporting of test statuses.""" + if report.when != 'call': + return None + + if isinstance(report, pytest.CollectReport) or report.outcome in ('skipped'): + return None + + props = dict(report.user_properties) + ahash = props.get('ahash:', -1) + dhash = props.get('dhash:', -1) + phash = props.get('phash:', -1) + if ahash == dhash == phash == 0: + if report.outcome == 'failed': + return 'failed', 'E', ('EXACT', {'red': True}) + return 'exact', 'E', ('EXACT', {'green': True}) + if ahash >= 10 or dhash >= 10 or phash >= 10: + return 'incompatible', 'I', ('INCOMPATIBLE', {'red': True}) + if 4 < ahash < 10 or 4 < dhash < 10 or 4 < phash < 10: + return 'passable', 'P', ('PASSABLE', {'yellow': True}) + if ahash <= 4 or dhash <= 4 or phash <= 4: + return 'compatible', 'C', ('COMPATIBLE', {'green': True}) + + +def pytest_terminal_summary(terminalreporter, exitstatus, config): + incompatible = terminalreporter._get_reports_to_display('incompatible') + passable = terminalreporter._get_reports_to_display('passable') + compatible = terminalreporter._get_reports_to_display('compatible') + exact = terminalreporter._get_reports_to_display('exact') + total = len(incompatible) + len(passable) + len(compatible) + len(exact) + if total < 1: + return + incompatible_percent = int((len(incompatible)/total)*100) + passable_percent = int((len(passable)/total)*100) + compatible_percent = int((len(compatible)/total)*100) + exact_percent = int((len(exact)/total)*100) + final_percent = ((len(exact)+len(compatible))/total)*100 + + parts = ( + (f'incompatible: {incompatible_percent:02d}%', {'red': True}), + (f'passable: {passable_percent:02d}%', {'yellow': True}), + (f'compatible: {compatible_percent:02d}%', {'green': True}), + (f'exact: {exact_percent:02d}%', {'green': True}), + ( + f'final: {final_percent:02.2f}%', { + 'green' if final_percent > 80 else 'red': True, + }, + ), + ) + line_parts = [] + for text, markup in parts: + with_markup = terminalreporter._tw.markup(text, **markup) + line_parts.append(with_markup) + msg = ', '.join(line_parts) + terminalreporter.write_line(msg) + + +def pytest_addoption(parser): + parser.addoption( + '--hasher', default='go run ./hashImage -file {}', help="The commandline image hasher to test ('go run ./hashImage -file {}')", + ) + parser.addoption( + '--image-dir', default='_examples/images', help='The file path to a directory of images to test', + ) + parser.addoption( + '--fail-skip', action='store_true', help="skip images that can't be decoded", + ) + + +def pytest_generate_tests(metafunc): + if 'file' in metafunc.fixturenames: + file = metafunc.config.getoption('--image-dir') + files = [] + cwd = pathlib.Path('').absolute() + for p in pathlib.Path(file).iterdir(): + if not p.is_file(): + continue + p = p.absolute() + if p.is_relative_to(cwd): + files.append(str(p.relative_to(cwd))) + else: + files.append(str(p.absolute())) + metafunc.parametrize('file', files) diff --git a/test/hash_test.py b/test/hash_test.py new file mode 100644 index 0000000..2e53cf0 --- /dev/null +++ b/test/hash_test.py @@ -0,0 +1,57 @@ +from __future__ import annotations + +import shlex +import subprocess + +import pytest + +import hashImage + + +def hamming_distance(h1, h2) -> int: + if isinstance(h1, int): + n1 = h1 + else: + n1 = int(h1, 2) + + if isinstance(h2, int): + n2 = h2 + else: + n2 = int(h2, 2) + + # xor the two numbers + n = n1 ^ n2 + + # count up the 1's in the binary string + return sum(b == '1' for b in bin(n)[2:]) + + +def test_hash(request, file, record_property): + hasher = request.config.getoption('--hasher') + try: + python = hashImage.main(['-file', file]) + '\n' + except Exception: + pytest.skip('python imagehash failed') + return + + sh = shlex.shlex(hasher, punctuation_chars=True, posix=True) + sh.whitespace_split = True + cmd_list = list(sh) + for i, p in enumerate(cmd_list): + if p == '{}': + cmd_list[i] = file + + external = subprocess.run(cmd_list, shell=None, capture_output=True) + external_stdout = str(external.stdout, encoding='utf-8') + if external.returncode != 0: + pytest.skip(str(external.stderr)) + return + external_stdout_h = python_h = '' + for p, e in zip(python.split('\n'), external_stdout.splitlines()): + p_, e_ = p.split(' '), e.split(' ') + h = hamming_distance(p_[1], e_[1]) + record_property(p_[0], h) + external_stdout_h += ' '.join(e_) + f' {h}\n' + python_h += ' '.join(p_) + f' {h}\n' + + assert external_stdout_h == python_h