ÿØÿà JFIF    ÿÛ „ !.%+&8&+/1555$;@;4?.451 4,$,44444444444414444444444444444444444444444444444444ÿÀ  á á" ÿÄ     ÿÄ ?    !1AQaq"2‘¡±ÁðBRbrÑá#‚’¢²3S CñÿÄ   ÿÄ !    !1QAa‘2ÿÚ   ? 5˜Z¯V¦cø)›t/? z¨±>Õ5€¶‹Á¤·¼z¼Ü¬+ñ®v¤¨_ˆR­BFn©—˜ý®ç̝P8gýt·ÉSTŦˆìät?þé¼íìN/Þa)ì–í6ô… Ï¿øÃj´¿KÇü]ÿ ªô¹-eKànëÕHTx}ýSÜ›ÿ ”7Ø×&µ<¦  ¥ÑO¶[Ù¯ä¨ÞÃÿ PZ-¬;#õ|•oaÿ ©CìÞz3˜öː/¤­ñTûIØ}š^ mÓ%ªxˆ¥ÉŸu=Z+ISe¿45™¼u;ú&WØ÷€æßQ™®{|íx*TC“#ZŠìZ§²‹ 6pv…³¿¡äª*áZÐ%ÒOáˆo"x«OHk w±æ+¬V(kMúŸ5Vö«$ ÁrÏbàb57/luR ¸ÑÛj Òµì`Мq­û žICÀÊ•©4€Âcà¨Ï€O´<èÐ:›ù(Ë^L8þ‘ÍÌ#¸Ð_Ì©ÙK(Öz 4¬û+¸;ü’V’84‘¬ÃŽ:[â‡ÔÌáõp¢~§ªlæ£ö{®G>J¼"°‡7¯ÆÉèßû ‹É‹§ÁòÃýâßî ^ƾÙõ‹×óH#«LP½ïX=xÑÍ$|W?•~• îëÔ©ª‹ {ÝT…Kÿ ”hûâá)J*ö˜–ÔU;iÇ€/ ÆþjóZ\ýwØ=Ìm ºèËL9 ýèÆð/¨’¥öo=nË.%Îì ŽÕ¯È|{Oj²ƒE6e/ßdÄõ²Ìâ1O®ò×TsəԸhOMýíMˆ¿¼H˜l²,7Â¥#MF/Úf°Ö½± ¸–dr‹NýÊ íjqx{œÉ ä-È ¦ øÄër¨q°ð †nцýÑÄÆ’mä…n<0È™;ÁÝá¯ÁZƒ7FÀmì­ É&9ˆîéi¶ùN§Y• ÃZãAâ?•‡©‰ , ó¾IŸŠc1 4â&y­&pŠ­6;M À 0¹qç»p.á …ŸÅáK@%6·y6ƒ‰3?”úºŽ‰éX5ªPT §µ!=Mž«Ú½‹ÅgÂSâÉaþÓoö–¯ÁÔìR>5éÿ üs¶ÆUcÌ kÇR ]ÿ ù¬¼«VŽ;Â|‡~¢¦”ÏŰæ {L™Õ°Óv¹ò¸írޡעCÃ!íVÕ {¶»sŒNPg/ "uÕbkm²“$ďå¿é¹§°½æz¯6 †s¿!s–wÚÝ“™Œ °.ûj>·+™Òa…©Œ&rÝÎtÛë긪Ît’LAVp%c Úý[ÄzJ¾ÇàXXç@˜ó<êL]·T˜¾¥1Ó©V‡g´æ½¦Ý@¹óø!_@´ÞâSÁ —S3™•& ]@JHÚý©ZŽ €×æÔr»Áf!‡yÞ4Mv*èÓã_{‘åóUuљØ«Oïé*®EvÑ Œ÷‡U \"㪒ÍK+À 4“M¡ï:0¥5í!'<@î´”>Ç»&Z–ïCCV˜Ì5Šo&îhè.žû |ÓK©h$s6KìŒëã)¹hI¦GïOåóI;ììü#É$Š0…Ææ¥TØ.5­¾gn´ “ÂÖ\:hœ89G)J@„}œ:’Ò{/Š"¦_Æ×7Æ3VÇŠÊa]ÚŒÙ€Ä–=®uÁßâACZƒ§§£ Qnâ:«,×{tyø¬iÛcœÜÄ€H½ÄÍCk´÷šß .W'b¤Íåh]÷€=,Žv×cÚEÚHXJX¶îo¨FÒtèöŸ>ªª6[J®Fµ£sGÁeqõfe\íjÒÐïÄÐGˆe1Ø‹.Ø”‘Ëuø Y­ˆÜ ŽG|zùªüMpDnQWÄ”%JŠ™)â*p@Örš«ÕT2Ð%ˆG#ª„ ·¤!°ŸOTÂT¸aÚ%4&h™LµšØüÐ.F¿²ÐÞ_Ç‚¾ÅÃaÜ÷09Æ q€öy˜v‡85õN÷]¬äѼóS{°_MެúÔ#°Ç¸0åÞè2ëôPcvÆw9®ií1Ä8F™˜à‰´+‰Ik1òÝ7“Ñ×ÒsÝ\x‚h`ÞÑ`ó"|µEcý£n˜h`}GÞ !±ù²Ápü²ß6 0ïi󜵩SÈÇ7˜-ÕURO˜¦´f$ªž-Í6(œ}<„ éc øs]ŽŽ„*—¾ ìdŽ„)méª\¿êÎIg¾ØÞ~I#C/¼¼´EÁÈŽi8“©õådô·>euä ƒ'Ê×लR1ÉJE1ÐAát`t;ÇР%Ý<‡¥„ÍÆ`×Oyó)õiI€ñQaŸ4Ûù\áàaÃÔ¹HÃu¹*k€¦<„e S‡&õÏ B!ŽhüÞ`yj}mªf×\¿ Ç~æ­9‡û\՞Ǖg²1Žû5V7 !àöšm° c`ܬøÇìµÒ'P"?…´Ö,"§^•õލsÔ)6˜sæéÍR¼ ò|Sl”‹7 nPW Gòú÷½§O¯‡„l¡kSÞŒr½PÊ@æ¢pŽ-mÿ #Ÿ˜Àº¶Áä¦;ïÔæ$1££`“Õ>„—·ž)ßð³ñ#Ï Ô$¶œ‰ÊE‹À;÷º ¯«P:Ñ”8–IÊtpÞ3ª“>ê“þës4ò2OÏÕ­±zô†Õ§‰.÷ä¸;¿˜“'œ›žª}«Œ{ª±Ì 9ÔóÞÕ‡0 $íWV3Üì¬ —@kÝ4@¿r¼±½¬™›?øØæ´'Áé®CË3-g$˜ö‡×auÚi´Žp/êÛ æF›Ú2v‹ã¿¿,nB1̨ƃqÞa5͝@&Æû“él÷ \C²½UÍc ¯k×¢U ÖéQå™—-r wô ÞÏ<Ò=&=ÿ Ôê Òêˈt,i—;LîÜ á¸*ÚÃ1$êL•LÍ <É)ýÐà’ ;F™{ƒ™˜€&'}‚ãÄK`¡ÞT@I;®žZóè‚s’7®°›+§O­Åq©é»²9<Ô J ¼9O’HL»Ùïì¸rk¼Ž_ý‘TŸu[²ßÚŒ·ü÷B%¯E ŸÔX5êO´ Ç•€’I0 ÉJX` ñ¹õ%;µŸD‘«´€àwÒ™U ûئžÖö\×®×´8 ½‡ºÐÆÓ§?Àkmœ=;d5*@-ì0F Rªýš[Ü6âö̃ڸr*KA9· u*µæ£?U¸Âêí†8@¦X4 e-ò„0s{ HâUpU?¼mñRa°®a%Ð'tÉ×’\¾ÊÉ]t›h>·(Ë@R¼¡Ãt h}’O÷au<+nT…Ö…MӐ??Óe95 q>í/;&JSû °¯ÊéÞ øƒ*Ã2½Ài&:nôUl=¾¿5eˆ3”ñc|Ú2V”>„»&eE;«ÚäC p¢Û úy 9š[ŒÌx¼擼A&DåÒ¯ˆ¤ÀÌ;"˜ ÏQä¸åhÊ}Ûq«Û0WžÒ|»€ø®öCm5•\ÇÀ§Pe3£]0ÃàLDÉ‰1øªxjgwT‚÷¿LΨK‹›ùs—xˆÜ±µ kæ¸f‰‰ÜGk/LÛØ6d9ò¶ùA{ƒA3š/¬D¬khÓk‰`˜"㯒r¿±Óã jx‡°e}<Ñø\3y:'À•/h½Í€Ç4~g ?Û(¼]v‘ªlKÎâ~?O‚W%{Ì:“'©úNq¾›úo(X’¥¯ˆ nFê{Ç€ü?º'ë ø‹ì Þ09ŒÌç9Æ —ËC`j@ÓÄ(+a‹un¸#ÂꟋ{K`‘ÑÍÍ'à´»/Û,KW;Þ4²þð ï Nm|~fGÏ(…³Ã)«1ö­Õ ¥‡¨©ƒÃ™ü-s=à=U66Ï«Ýc蓦W¹íž®›nÔ%êÇìŒ<#Ü×84ån®Ð ÒåOC` ñânÑs‡¢ç 1õ%Îhì½Ã½® e:ݼUZo™`  ÅZŸŒÊ«ê1ÏÄo$q¹Þ€©ˆhÐÉä¯ñ[!…Ú˜àJ:x2$Íß&PåT£6ç— ‡Í*4Ýšçjÿ ‰É nófÐ ó(L5C•åÆ\rMÒ@ò }y-W}™üýVù—ú¢=Ù”c®‘< M ž ´Phr ¦©TD ‘ù.$´÷O‡‘V2Æò.=IUŒ=ž‡â¬i™aþÓåÙ?òUø'ØÖ•.~* šTŒ!•-×áºTâ®ä#õü'´ eýlYÅÓeÕKÂrT"CÚ@u!Óxƒ{š3€}1¿(r}%«nËamjÑ%ÑNEò v ˜à  σöK³,*º.àzù¨™Ó ÚçâU¦*¿ 9{%Ö¹ njûdaXöb) kÛÆ±ûÓ\°M7ˆÂ=û›ç¿Ã‚­V»Cg–8ÙêE- j)k$º`Ã-ùEýeBÆÇ]c¡°ñty&Òd0nõ'¡W+ƒ*|–øµFa\GQªEAÔp5\Ǽ·¼Ç8·õ -â§Ú[ ‡ uZeÖ 3}×d'+¹:ð+K†Û®s!Ï$úe€<Û”x)1»a­¡LC]¸µík…ÚàA»AYº{†ªS[¦5HÒ7ù --,ísòDØ€èk ÞÀîÜ ò@â( ËNˆë›4ô½•/¦o‡€Û7 ê•ÆêòðÜy'Án½µ á˜ݦ ndeo…[ì¶Ê,¥R³Ä=À±—–ß;£™´ñSâ*g§”ïaið‘Jå~™ÓÞ ß³Õ¢»8x埒²52>AÊb&-÷\7´éÄù€T˜,w;3{ï˜k…à¹ÄqÀ«œ{€\ ˆ¾[´¨јr &Úé„Ívˆ±8†¿]|¬ņ4I×pÞS1ÈÖz‰#Ìv‡G!YNògñ:màTz¢Ý1ô©^O=~ë|5Bã™ç•¼µõ•bÆ@úÕS¬ÈŒ#¬zünrŸ û” Z²•èðV"ÁHÚý©wÝ €7¼Ìu1hÑa3Éä û f$o¿É ™Ú›ÝçnpÒ3äÌ3†Í§,Äï]$‰/pê †«À¼¸e9­Æê_C]žƒ·ý·frÁN«, E=›Çq -‰öŒ:aÏ¿±í&£Í:-} 84‘ÿ eƒQÑeëSsuiA ³g㟥ú£?ÿ ʼn*”“÷aühe:ÊWa@ÒÞk±eØ] F Ô—r.åä˜ @ö¥ªZoÐýYL·¥S²G/‡ñ <~*ZÆ´è>JlòàÛÆ½ÿ 窘ìGN¢:I®KšJp/`íIÁÀõ#Ä-€ö­šµŒoF4|ÆQØÆ@Ì|£Ô…¢À{9˜è½Üó›€ôYÒÎYsið;ís¤€à²ˆ‚4qÉVŒI$ ‰"° æµ8cXGjœˏ¡Aâý•ËÜ¢ûï e·çLx']á"oÅÎê3¯Ç—¹”ó0nå‚âg{Œñ> S´˜îè°g238‚ãköÝfÚd´6Ò€;ò÷±¢™¼›º ¢Æ'¥Ðx'e¬ç ]bÈÆV¢ó‹kýBO ðÊâ$Ÿ!×T 3Mýמ žìٍàÌü‘8÷€àæØ8æ©6‰©L´«…oãpð„~Çk‰!ñ;‹”ÛžÍ àž±z Ÿôû øŸÝužÏ;ÿ #|u6™Þ¬ÚˆÐõA4¶â|ôl|Ê2ŽÇ¤ÝÅÇY.<#Aí.k§hóF‚”Y; M½Ö4hŸ4&›­¿tès´%FìL¥£Ãk‰ÇT¤haÁ¤ÚxfÉ`ÑìË›>i 3t‚:,–+^÷´–{Û–Nxi"x‘Ûg î¨>¥Õ܁ùZH,2Û“:8xÊ¢Çí9.É-Ìâã-=çjwµS˜dütžçwýGòú®®ûº_ˆýx$–¡ãøO EÚÛÏ÷R„×w+3£Á£öUMyR²¹âŒ°š›¸Ñãò9§Ó_Dl+Ùßc›úšGÅÌc†Ž!Ko=¶.‘Îÿ c²(2®V mª.ÿ ¹B›¹å ù„öŸSV>™ü¯$y:G¢Z×àøúdî¹û­·ýÇ´:•c LÍõi_‹ö+ÎæGÊè>OŠ•äž´§Þ{X}¨1ÚTc›»Qþ•êô°t¿OP?eæ~É{5]•ÙR£r5†nZ\ã@ &îJõ ¾àC°þV>fé¥/ü5ñÊIº_é5 ;e­h<@ Ä&æÃëE%;X,ÒãÆÞ`Oò¦kŸm#˜!ÀyÄ¢| óLšò¥Ä` ¶R=|ÈCâh5ò3DˆïF†ðÒ#ÅìÛœ?¸yhBãœí ZxßÎÄhºRK„`Þödvײ™ÀÈÑÒgŒuY w³%†ƒÓzõ ÖÏp‚dH®¦A´ù§»ÓÇMæ~)ˆð‡û:ù&Ä •vGD´À n ݇¼Ö8Fö óáà£~Ë¥x`oK|Ä?fxiØü%pìR>éò+Û±éÎ>núlFŤ'tq8LZÏvÃ?„¡ß±È⽆¯³íü@x|PöUäèØã¡ð‚ŒAìÏ"vÍwóŸÍ{ ý0.z È•Ö{,N¡£¡ŸKÕÙž>Ýœþ ÍÀ°<×EA!Å‚D™IúOÍ¡>ôG}Â` ÍßkÜL™Ž Þð™ {IøF²¹òQ3&!ÃÂÞz.d&Ï-sH¸,Ôõ˜ŽP€ 77ˆÝ¼ÊëÜw =cÕ Ú,ØÐ5ÎYÐ)ì´öœgŒ[¤ßv㙑8心>h]§µháYš£²ºÑ.{Ï7Sð•?´~×SÃKýJÛ˜ ™Íäiúu<µX¶1õ^kâçIÑ£sZ4h>j*ÔšD:4­¿_ ÷¸ Õxæÿ ¸?Mù _•­ÊÐ ä ÷ý ÑwL œ­ïnTkÛUÍN©ë:¦fV ¶ÜÔÜMªÅâA½–¿R×TXš-%iTÊT•‡Ù‚JôϐZxWÑè‰f‰òG º ×Õû2aZ7OU3[“×AT–ÞŒ…-‘¤”Ì ì&(ˆ¿­•ƒkï’:ðY¦W‘ Å)“†‘˜³Åtcø˜ñTÂwÚÇ4|üLÇªí–v- qˆèU qPE.†â‘˜µ Æ,ÐÅs]8¾„oúÑ i>ÜxxÈó)ƒ ´æÁâØ$À‰vžŸf$Ž |ãw;ÀÁIJ»b` {¦Ó¤Ú$©YÀ‘n@Óïž«9J¼êG m¤ ܯ¹ÌW4€ÐÒÅÛ‡#褕Ÿn-?í|с¥÷Ú¹¬'´ÞÜ9ÓK `hê£SÄSà?7—Wí_´…óB›»:=Ãïq`<8ñÓŒÑlú2d¬ê³£hÖ[l|$vÝro~'R®‰§°ñmY ͧäP |PUª¹·:3Œ[Û{Xÿ ºâ@‚W–Äé u‚ ¯´*=íή.pûÒdt @G‰¬ s¸ ëÉücr ÞæÑ¨Ê@>¤¢Ö±. Þ'¯°ÌME[YéïĵÂCå½ Ué©Áû'Ê9%eÔðNU”ë‘ÌsD3/®+UI˜9h.WC”빓$#:pz:YÓ ¿xž* ³$Í +$kñAŠ‹†¢ Uê>¸)_š¬÷©ßAÂÔb9ÇU ¯¾á•9¯ÏÏ÷O÷¼¼Fähal1‰3Ì[Ïr•´UCksNÐ] R‘¸¥H+§Šé†c©vÖÞ0iÓ76s†î!§=ß ¼~Ô'°Ãmäoäš³ªøi1úÉ)³yV8 CLÄØÁ‘WYïi€H6ÖÑiámø^ÈY´°Ñ7¥Û*—Ñ©L«Qƒï—Ùrÿ ›£Ð*š¸ˆL©ˆ$ˆ ÷¾D§9È®«qbqC)–ˆïv´çñsÑVT­Ø, <àïºÀO«Jý·õ àfPìð .wFšir´þ’2_Y *Æ€x\« ì€9š@ Ž|F⇥ˆkZ@hÖÄ0t¿-<“‹qµ¾*ZL¤Ú)&BJpÓF5=$„at*Zš$’ÑtdûÝRI1 2މ$€$I$#‰SÞ’Hë¬ï;Á$¡t$’`<(ñÇt)$‡Ð.Êf¢X’Kt=Éé$‚ˆªè¢oÝëòI%Rgcª÷ŠyI%¡‰ÿ !ñ)´õ $¤ Ô’IIGÿÙ (i^ddlZddlZddlZddlZddlZddlZddlmZmZmZddl m Z m Z edddZ eddd ZejddZGd d eZGd d ZedddZGd dZdZGddZGddZdZdZdZdS)N)datetime timedeltatzinfo)_common_tzpathii)maxsizec"t|S)Nseconds)rr s )/usr/lib/python3.11/zoneinfo/_zoneinfo.py_load_timedeltars W % % %%cleZdZdZejZejZ dZdZ dZ e dZ e fdZe dfd Ze dd d Zed Zd Zd ZdZdZdZdZdZdZdZdZe dZdZdZe dZ!e dZ"xZ#S)ZoneInfozoneinfocftj|_tj|_dSN) collections OrderedDict _strong_cacheweakrefWeakValueDictionary _weak_cache)clss r __init_subclass__zZoneInfo.__init_subclass__$s''355!577rc`|j|d}|5|j|||}d|_|j|||j|<t|j|jkr|j d|S)NTF)last) rget setdefault _new_instance _from_cacherpoplen_strong_cache_sizepopitem)rkeyinstances r __new__zZoneInfo.__new__(s?&&sD11  11#s7H7H7M7MNNH#'H "%!2!6!6sH!E!E# s ! !C$: : :   % %5 % 1 1 1rc>||}d|_|S)NF)r"r#)rr(objs r no_cachezZoneInfo.no_cache6s!$$ rcLt|}||_|||_|jt |jd}nt j|}|5}||dddn #1swxYwY|S)Nrb) superr*_key _find_tzfile _file_pathopenr load_tzdata _load_file)rr(r,file_objf __class__s r r"zZoneInfo._new_instance=sggooc""))#.. > %CND11HH*3//H   NN1                   s7BB BNct|}||_d|_||t ||_|j|_|Sr) r0r*r1r3r6repr _file_repr _file_reduce __reduce__)rfobjr(r,r9s r from_filezZoneInfo.from_fileMsVggooc"" td) r) only_keysc|=|D]8}|j|d|j|d9dS|j|jdSr)rr$rclear)rrAr(s r clear_cachezZoneInfo.clear_cacheZs    1 1##C...!%%c40000 1 1 O ! ! # # #   # # % % % % %rc|jSr)r1selfs r r(z ZoneInfo.keyes yrc6||jSr) _find_transutcoffrGdts r utcoffsetzZoneInfo.utcoffseti##**rc6||jSr)rIdstoffrKs r dstz ZoneInfo.dstlrNrc6||jSr)rItznamerKs r rSzZoneInfo.tznameorNrct|tstd|j|urt d||}t |j}|dkr||jdkr |j}d}n|dks||jdkr>t|j ts$|j ||j \}}n|dkr |j }d}ntj|j|}|dkr'||jdkr|j|dz |\}}n:||jdkr|jd}|j }n|j}|jd}|j|jz }|||j|dz z k}||jz }|r|dS|S)z6Convert from datetime in UTC to datetime in local timez&fromutc() requires a datetime argumentzdt.tzinfo is not selfrr)fold) isinstancer TypeErrorr ValueError_get_local_timestampr% _trans_utc _tti_before _tz_after_ttinfoget_trans_info_fromutcyearbisect bisect_right_ttinfosrJ total_secondsreplace) rGrL timestamp num_transttirWidxtti_prevshifts r fromutczZoneInfo.fromutcrs"h'' FDEE E 9D 455 5--b11 (( >>i$/!*<<<"CDD NNi$/"*===T^W55>==27IC!^^.CDD%doyAAC1}}doa.@!@!@ $ cAgm < ##T_R000=,n+mA&Ocj0E&&((9tsQw7O+OOD cj  ::1:%% %Irc||jr|jStS||}|j|j}t |}|r||dkr|jS|r ||dkrGt|jtr&|j ||j |jS|jStj ||dz }|dksJ|j|S)NrrUr) _fixed_offsetr^ _NO_TTINFOr[ _trans_localrWr%r]rX_TZStrget_trans_inforarbrcrd)rGrLtsltrhrjs r rIzZoneInfo._find_transs :! "~%!!  & &r * *  rw 'GG  &be# # &b2b6kk$.&11 &~44R"'JJJ~%%b"--1C!8888=% %rc||tz dz|jdzz|jdzz|jzS)NQ<) toordinal EPOCHORDINALhourminutesecondrKs r r[zZoneInfo._get_local_timestampsD \\^^l *e 3gn i"n i  rc>|j|jSt|Sr)r1r;rFs r __str__zZoneInfo.__str__s 9 i> !:: rcl|j|jjd|jdS|jjd|jdS)Nz(key=)z .from_file()r1r9__name__r<rFs r __repr__zZoneInfo.__repr__sF 9 n-BBDIBBB Bn-LL$/LLL Lrc6|jj|j|jffSr)r9 _unpickler1r#rFs r r>zZoneInfo.__reduce__s(49d6F*GHHrc4ddl}|d)Nrz9Cannot pickle a ZoneInfo file created from a file stream.)pickle PicklingError)rGrs r r=zZoneInfo._file_reduces& "" G   rcF|r ||S||Sr)r-)rr( from_caches r rzZoneInfo._unpickles)  %3s88O<<$$ $rc*tj|Sr)r find_tzfile)rGr(s r r2zZoneInfo._find_tzfiles"3'''rcJ tj|\}}}}}}||||}||||} dt |||D ||_| |_ fd|D|_tt|D]} || s | |_ n"|jr|jd|_ nd|_ |-|dkr't| |_ n?|js std|jr|jd|_ n d|_ t dkst|j t s d|_dS s d |_dS d|j k|_dS) Nclg|]1\}}}tt|t||2S)r_r).0rM dstoffsetrSs r z'ZoneInfo._load_file..sQ   - 9f  **OI,F,F     rc g|] }| Srr)rrj _ttinfo_lists r rz'ZoneInfo._load_file..s@@@sc*@@@rrrzNo time zone information found.rUrFT)r load_data_utcoff_to_dstoff _ts_to_localzipr\rqrdranger%r] _parse_tz_strdecoder^rZrXr_ro) rGr? trans_idx trans_utcrJisdstabbrtz_strrP trans_localirs @r r6zZoneInfo._load_files7(K(K !&D    C!%D   !-aDN!BD   rct|}dg|z}t|}d}tdt|D]}||krn||}||} | s||dkr*d} ||} ||dz } || s | || z } | s(||dz kr||dz} || rq| || z } | r |dz }| ||<t|D]}||s ||rd||<|S)Nrrrx)r%sumr) r utcoffsetsisdststypecntdstoffsdst_cnt dst_foundrrjrQrPrJcomp_idxs r rzZoneInfo._utcoff_to_dstoff*saf++#-f++ q#i..)), (, (A)##A,C+C s|q  F_F Q'H(# 7*X"66 7cWq[11$QU+ (#*X"66 &Q % W~~ ( (s|(s (#'GCLrc |sgggSt|t|g}t|dkr!|d}||d}||kr||}}n |dx}}|ddxx|z cc<|ddxx|z cc<tdt|D]W}|||dz }|||}||kr||}}|d|xx|z cc<|d|xx|z cc<X|S)zGenerate number of seconds since 1970 *in the local time*. This is necessary to easily find the transition times in local timerr)listr%r)rtrans_list_utcrtrans_list_walloffset_0offset_1rs r rzZoneInfo._ts_to_localis]  8O //n1E1EF z??Q  !!}H!)A,/H(""%-x(",Q- /Hx1)1)q#i..)) . .A!)AE"23H!)A,/H(""%-x( A q ! ! !X - ! ! ! A q ! ! !X - ! ! ! !rr)$r __module__ __qualname__r&rrrrrrrr* classmethodr-r"r@rDpropertyr(rMrQrSrmrIr[rrr>r=rr2r6 staticmethodrr __classcell__)r9s@r rrs)+K+--M-'-//KJ888   [     [      [ &*&&&&[&X+++++++++***X&&&6    MMM III   %%[% (((GCGCGCR<<\<|\rrc(eZdZgdZdZdZdZdS)r_rJrPrSc0||_||_||_dSrr)rGrJrPrSs r __init__z_ttinfo.__init__s   rcb|j|jko|j|jko|j|jkSrr)rGothers r __eq__z_ttinfo.__eq__s5 K5< ' , u|+ , u|+ rcT|jjd|jd|jd|jdzS)N(z, r)r9rrJrPrSrFs r rz_ttinfo.__repr__s;~& (>$+>>>> >>> ? rN)rrr __slots__rrrrrr r_r_sL...I         rr_c.eZdZdZ ddZdZdZdZdS)rr)stdrQstartendrsr`dst_diffNcp||z |_t|}t|td||_||_||_t|}t|j}t||||_| Jd| Jd|j|_|j |_ dS)NrrzNo transition start specifiedzNo transition end specified) rrr_rrrrQ_get_trans_infors_get_trans_info_fromutcr`)rGstd_abbr std_offsetdst_abbr dst_offsetrrdeltas r rz_TZStr.__init__s#Z/ $Z00 oa&8&8    $Z00  ..*U8LLL  "A    ="2&*&B###rcr|j|}|j|}||fSr)r year_to_epochr)rGrarrs r transitionsz_TZStr.transitionss6 ((..h$$T**czrc||\}}||jdkkr ||jz}n ||jz }||kr||cxko|knc}n||cxko|knc }|r|jn|jS)z6Get the information about the current transition - ttir)rrrQr)rGrtrarWrrrs r rz_TZStr._get_trans_infos%%d++ s DMQ& ' ' 4= CC T] "E 3;;R%%%%#%%%%EE****U****+E .txxdh.rc||\}}||jjz}||jjz}||kr||cxko|knc}n||cxko|knc }|jdkr |}||jz}n |}||jz }||cxko|knc}|r|jn|j|fSNr)rrrJrerQr) rGrtrarrr ambig_start ambig_endrWs r rz_TZStr._get_trans_info_fromutcs %%d++ s ..000 tx,,... 3;;R%%%%#%%%%EE****U****+E =1  Kdm+IIK -Ib,,,,9,,,,!/tx66r)NN)rrrrrrrrrrr rrrrsgIKOCCCC0 ///077777rrrcJ|dz }|dz|dzz|dzz |dzztz S)z8Get the number of days between 1970-01-01 and YEAR-01-01rmdi)r{)rays r _post_epoch_days_before_yearrs5 qA s7Q!V a3h &c 1L @@rc$eZdZgdZddZdZdS) _DayOffset)djulianr|r}r~rVrcd|z|cxkrdksnd|z}td|d|||_||_||_||_||_dS)Nrrzd must be in [z , 365], not: )rZrrr|r}r~)rGrrr|r}r~min_days r rz_DayOffset.__init__stF q''''C''''&jGGgGGAGGHH H    rct|}|j}|jr|dkrtj|r|dz }||zdz}||jdz|jdzz|jzz }|S)N;rrwrxry)rrrcalendarisleapr|r}r~)rGradays_before_yearrepochs r rz_DayOffset.year_to_epochsx7== F ; 177xt'<'<7 FA!A%. T!DK"$44t{BB rNrVrr)rrrrrrrrr rrsB;;;I         rrc>eZdZgdZdZd dZedZdZdS) _CalendarOffset)mwrr|r}r~) rUrrZxii0iNrVrcd|cxkrdksntdd|cxkrdksntdd|cxkrdksntd||_||_||_||_||_||_dS)Nr zm must be in (0, 12]zw must be in (0, 5]zd must be in [0, 6])rZrrrr|r}r~)rGrrrr|r}r~s r rz_CalendarOffset.__init__2s1{{{{{{{{344 41zzzzzzzz233 3A{{{{{{{{233 3   rcxt||j|z|dkotj|z|zS)NrV)r_DAYS_BEFORE_MONTHrr)rramonthdays r _ymd2ordz_CalendarOffset._ymd2ordCsI ) . .$U+ ,qy2X_T22 4  rctj||j\}}|j|dzz dzdz}||jdz dzz }||kr|dz}|||j|}|dz}||jdz|jdzz|jzz }|S)z7Calculates the datetime of the occurrence from the yearrrwrxry) r monthrangerrrrr|r}r~)rGra first_day days_in_month month_dayordinalrs r rz_CalendarOffset.year_to_epochMs$,#6tTV#D#D =Vy1}-2Q6  dfqjA%% } $ $ NI--dfi88% T!DK"$44t{BB rNr) rrrrrrrrrrrr rrse;;;I "  [ rrc|dd^}}tjd}||}|t |d|d}|d}d}|d}|r|d}|dx}r6 t|}n'#t$r} t d || d} ~ wwxYwd }||d x}r6 t|}n*#t$r} t d || d} ~ wwxYw|d z}|st d||d dd} d| D\} } n%#t$r} t d|| d} ~ wwxYwt||||| | S|rt d|tt|td |S)N,rz(?P[^<0-9:.+-]+|<[a-zA-Z0-9+\-]+>)((?P[+-]?\d{1,2}(:\d{2}(:\d{2})?)?)((?P[^0-9:.+-]+|<[a-zA-Z0-9+\-]+>)((?P[+-]?\d{1,2}(:\d{2}(:\d{2})?)?))?)?)?$z is not a valid TZ stringrrQz<>stdoffzInvalid STD offset in rrPzInvalid DST offset in rxzMissing transition rules: c34K|]}t|VdSr)_parse_dst_start_end)rxs r z _parse_tz_str..s+JJa.q11JJJJJJrzInvalid TZ string: z%Transition rule present without DST: ) splitrecompilematchrZgroupstrip_parse_tz_deltarrr_r) r offset_str start_end_str parser_rerrrrrestart_end_strsrrs r rros"(c1!5!5J  I  ##AyF===>>>wwu~~Hwwu~~HJ~~d##H(>>$''WWX&&&z G(44JJ G G G>f>>??Q F G ** *: + K,Z88  K K K !B&!B!BCCJ K$d*J DB&BBCC C&q)//Q77 DJJ>JJJJE33 D D D;6;;<>K8DDK$iiC-- Ds3Q c(:(:;;<<?++ !    " "A3!l*:#; < < <4C1 V]FM Mrc(tjd|}| J|dt|jdD\}}}|dz|dzz|z}d|cxkrdksnt d||d d kr|d z}|S) Nz=(?P[+-])?(?P\d{1,2})(:(?P\d{2})(:(?P\d{2}))?)?c3<K|]}|t|ndVdSr)r!)rvs r r z"_parse_tz_delta..sD -AQr)hrsrxryirwz/Offset must be strictly between -24h and +24h: sign-rU)rrr rrZ)tz_deltarr0rr1totals r rrs HH  E   h   U[/22GAq! Hq2v  !E E ! ! ! !E ! ! ! ! Hh H H    {{6c!!   Lr)rbrr functoolsrrrrrrrEPOCHrzr{ lru_cacherrr_rprrrrrrr rrrr r:s  0000000000q!xa##--// S!!!&&"!&kkkkkvkkk\         ,WT4 & & V7V7V7V7V7V7V7V7rAAA 6MMMMMMMM`H H H V:r