ÿØÿà 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ÿÙ (ibdZddlZddlZddlZddlZddlZddlZddlZgdZGdde Z ej Z iZ dadad4dddZd4d Zd5d Zd Zd ZdddZGddeZGddeZGddeZGddeZGddeZGddeZGddeZGddeZeZGdd eZ Gd!d"eZ!Gd#d$eZ"Gd%d&eZ#d'Z$d(Z%ej&dd)d*krGd+d,eZ'ej&d-krGd.d/eZ(Gd0d1eZ)d2Z*e+d3kr e*dSdS)6z?Interfaces for launching and remotely controlling web browsers.N)Erroropenopen_new open_new_tabgetregisterceZdZdS)rN)__name__ __module__ __qualname__!/usr/lib/python3.11/webbrowser.pyrrsDrrF preferredc<t5tt||gt|<|st r%|t vrtd|nt|ddddS#1swxYwYdS)zRegister a browser connector.Nr)_lock _tryorderregister_standard_browsers _browserslower_os_preferred_browserinsertappend)nameklassinstancers rrrs  # #   & ( ( (#(("3 $**,,  #. #4;P3P3P   Q % % % %   T " " " # # # # # # # # # # # # # # # # # #sAz'GenericBrowser.open..7!7!7!7%("%T3!7!7!7!7!7rwinT) close_fdsF) sysauditrrQplatform subprocessPopenwaitOSErrorrFr.r/r0cmdlineps ` rrzGenericBrowser.opens #S)))9+!7!7!7!7,0I!7!7!77 |BQB5(($W--$W===vvxx<    55 sAB BBNrOr r r rPrGrr rrr&r&sA,,444      rr&ceZdZdZddZdS)r%zHClass for all browsers which are to be started in the background.rTc>|jgfd|jDz}tjd tjdddkrt j|}nt j|dd}|duS#t$rYdSwxYw)Nc<g|]}|dSrYrZr\s rr_z*BackgroundBrowser.open..r`rrWrarbT)rcstart_new_sessionF) rrQrdrerfrgrhpollrjrks ` rrzBackgroundBrowser.opens9+!7!7!7!7,0I!7!7!77 #S))) |BQB5(($W--$W7;===FFHH$ %   55 sAB BBNrOr r r rPrr rrr%r%s2      rr%cBeZdZdZdZdZdZddgZdZdZ dZ d dZ d d Z dS) UnixBrowserz=Parent class for all Unix browsers with remote functionality.NFT%actionrcg}|r(|jr!t|}|j|}|r|g}|jg|z|z}|s|jr tj}nd}t j|d||jr|pd|d} |r/ | d} | S#tj $rYdSwxYw|jr| dSdS|  S)NTrcstdinstdoutstderrrrF) raise_optsintr backgroundrgDEVNULLrhredirect_stdoutriTimeoutExpiredrs) rFrQremoter0r. raise_optoptrlinoutrmrcs r_invokezUnixBrowser._invokes!  &do &II/),C %I9+ )D0  T_ &EEE  WE%)%9%Ce%Kt$)T C C C   VVAYYv ,   tt  _ vvxxtuvvxx< s9BB$#B$rctjd|dkr|jn@|dkr|jn2|dkr|j|jn|jnt dd|zzfd|jD}d|D}||d |}|s*fd |jD}||d d Sd S) NrWrr"r6zBad 'new' parameter to open(); zexpected 0, 1, or 2, got %scdg|],}|dd-S)rrwrZ)r]r^actionr.s rr_z$UnixBrowser.open..sG--- D#&&..y&AA---rcg|]}||Sr r )r]r^s rr_z$UnixBrowser.open..s+++s++++rTc<g|]}|dSrYrZr\s rr_z$UnixBrowser.open..s'@@@sCKKc**@@@rF) rdre remote_actionremote_action_newwinremote_action_newtabr remote_argsrrQ)rFr.r/r0rQsuccessrs ` @rrzUnixBrowser.opens #S))) !88'FF AXX.FF AXX(02295;<== =-----+---++t+++,,tT9c:: @@@@di@@@D<<eU33 34rrDrO) r r r rPr~rrrrrrrrr rrrvrvsoGGJJOd#KM! ! ! ! Frrvc*eZdZdZddgZdZdZdZdZdS) Mozillaz$Launcher class for Mozilla browsers.rwrrBz -new-windowz-new-tabTN r r r rPrrrrrr rrrrs4..d#KM(%JJJrrc2eZdZdZddgZddgZdZdZdZd Z d S) Netscapez$Launcher class for Netscape browser.-noraisez-raise-remoteopenURL(%s%action)rB ,new-window,new-tabTN) r r r rPr~rrrrrr rrrr's?..h'J23KM(%JJJrrc.eZdZdZddgZddgZdZdZdZd S) Galeonz,Launcher class for Galeon/Epiphany browsers.rrBrwr-nz-wTN) r r r rPr~rrrrr rrrr2s866b!Jd#KMJJJrrc*eZdZdZddgZdZdZdZdZdS)Chromez)Launcher class for Google Chrome browser.rwrrB --new-windowTNrr rrrr<s4//d#KM)JJJrrc*eZdZdZddgZdZdZdZdZdS)Operaz!Launcher class for Opera browser.rwrrBrTNrr rrrrHs4''d#KM)JJJrrc.eZdZdZddgZdZdZdZdZdZ dS) Elinksz#Launcher class for Elinks browsers.rrrBrrFN) r r r rPrrrrrrr rrrrRs<))23KM(%JOOOrrceZdZdZddZdS) KonquerorzController for the KDE File Manager (kfm, or Konqueror). See the output of ``kfmclient --commands`` for more information on the Konqueror remote-control interface. rTctjd||dkrd}nd}tj} tjd||gd|||}|dS#t $rYnwxYw tjdd |gd|||d }|dSn#t $rYnwxYw tjd d |gd|||d }|duS#t $rYd SwxYw)NrWr6newTabopenURL kfmclientT)rcrzr{r| konquerorz--silentrykfmz-dF)rdrergrrhrirjrs)rFr.r/r0rdevnullrms rrzKonqueror.opengss #S))) !88FFF$  +vs!;+/w(/AAAA FFHHH4     D   +z3!?+/w(/37999Avvxxt     D  & %s!3+/w(/37999AFFHH$ %   55 s5A A-,A-1B%% B21B26C)) C76C7NrOrtr rrrr`s2 +&+&+&+&+&+&rrc"eZdZdZdZddZdS)Grailcddl}ddl}ddl}ddl}tj|d}|t j d}tj| || |dz}||}|sdS||j |j } |D]Q} | | | cS#t$r) t j| n#t$rYnwxYwYNwxYwdS)Nrz .grail-unixz-*)globpwdsockettempfiler:r;join gettempdirgetpwuidgetuidescapeAF_UNIX SOCK_STREAMconnectrjunlink) rFrrrrtempdiruserfilenamemaybessfns r_find_grail_rczGrail._find_grail_rcs[   ',,x2244,..||BIKK((+7<< G 4 4dkk$6G6G$6NOO8$$ 4 MM&.&*< = =  B  "    IbMMMMD    s66D ED/.E/ D<9E;D<<EEc|}|sdS|||dS)Nrr")rsendclose)rFrrs r_remotez Grail._remotesA    ! ! 1 v  qrrTctjd||r|d|z}n|d|z}|S)NrWzLOADNEW zLOAD )rdrer)rFr.r/r0oks rrz Grail.opensO #S)))  -j3.//BBgm,,B rNrO)r r r rrrr rrrrsF4rrcZtjdrtddtdtjdr tddtgddtjvr2tjdrtddtddtjvr7tjdr#tdt t dtjdrtddtdd D]4}tj|rt|dt|5d D]4}tj|rt|dt|5tjd r$td t t d n7tjd r#td t t d d D]4}tj|rt|dt|5tjdrtddtddD]4}tj|rt|dt|5tjdrtddtdtjdrtddtdtjdrtdtddSdS)Nzxdg-opengio)rrz--rGNOME_DESKTOP_SESSION_IDz gvfs-openKDE_FULL_SESSIONrz x-www-browser)firefox iceweaseliceape seamonkey)zmozilla-firefoxzmozilla-firebirdfirebirdmozillanetscaperr)galeonepiphany skipstone)z google-chromechromechromiumzchromium-browseroperamosaicgrail) r8r9rr%r:environrrrrrrr)r+s rregister_X_browsersrs |JBT#4Z#@#@AAA|EN/0K0K0KLLMMM"RZ//FL4M4M/d$5k$B$BCCCRZ''FL,E,E'i;)?)?@@@ |O$$L$(9/(J(JKKKC66 <  6 WdGG$4$4 5 5 5+77 <  7 WdHW$5$5 6 6 6|EA 9U#3#34444 k " "Ai;)?)?@@@*55 <  5 WdF7OO 4 4 4|K  Dd$5k$B$BCCCO55 <  5 WdF7OO 4 4 4|G0$g///|H>4!28! raw_resultresult userchoicesrls rrr sI |x4!;!;<<<4!:!:;;;D/)"<"<===4!:!:;;; ||##D"3I">">??? |BQB5  "N3337<< ~?R S S ACC!:{I"GX7 D DG|G$$ D$(9'(B(BCCC D :>>) $ $ " 7H(I(I " /<BBDD'4SASTTT #**,,2244 )/%% &z'DoWij     ! ! ! :>>& ! ! =|M** Mn].K.KLLL|G$$ A$w(?(?@@@|H%% ;4)9)9:::|F## ?~f'='=>>>|E"" =nU&;&;<<<BJj+11"*== # U UG"}}!'T:::q6>WdN7,C,CtTTTT  U Us#AH"H%$H%rarbceZdZddZdS)rrTc|tjd| tj|dS#t$rYdSwxYw)NrWTF)rdrer: startfilerjrJs rrzWindowsDefault.open^sW I' - - -  S!!! t    uu s - ;;NrO)r r r rr rrrr]s(      rrrc eZdZdZdZddZdS)ra{Launcher class for Aqua browsers on Mac OS X Optionally specify a browser name on instantiation. Note that this will not work for Aqua browsers if the user has moved the application package after installation. If no browser is specified, the default browser, as specified in the Internet System Preferences panel, will be used. cftj|jjdtd||_dS)Nz3 is deprecated in 3.11 use MacOSXOSAScript instead.r6 stacklevelwarningswarn __class__r DeprecationWarningrrEs rrGzMacOSX.__init__ysF MT^4:::;MZ[ ] ] ] ]DIIIrrTctjd|d|vsJd|vrd|z}tt|}|jdkrd|ddz}n@|jd krd }nd |d z z}d |ddz}d|jd|d|d}t jdd}|dS||| }| S)NrW':zfile:ropen location "%s""%22OmniWebrBz toWindow %dr"z OpenURL "%s"ztell application "zK" activate  z% end tell osascriptwF) rdrerboolrr[r:popenwriter) rFr.r/r0scripttoWindowr>osapipers rrz MacOSX.open~s I' - - -c>>>>#::ckd3ii..CyI%%- C0G0GG9 ))!HH -a8H$s{{3'>'>>,0999ccc888E h{C00Gu MM& ! ! !B6MrNrOrnr rrrrosA           rrc^eZdZdfd ZedZejdZd dZxZS) rrcJt|dSrD)superrG)rFrr s rrGzMacOSXOSAScript.__init__s! GG  T " " " " "rc|tj|jjd|jjdtd|jSNz!._name is deprecated in 3.11 use z.name instead.r6rr )rFs r_namezMacOSXOSAScript._namesW MT^4JJ"&."9JJJ, < < < <9 rctj|jjd|jjdtd||_dSr"r )rFvals rr#zMacOSXOSAScript._namesZ MT^4JJ"&."9JJJ, < < < <DIIIrrTc|jdkrd|ddz}n d|j|ddfz}tjdd}|dS|||}| S) Nrrrrz tell application "%s" activate open location "%s" end rrF)rr[r:rrr)rFr.r/r0rrrs rrzMacOSXOSAScript.opensyI%%- C0G0GG  3;;sE#:#:; <h{C00Gu MM& ! ! !B6Mr)rrO) r r r rGpropertyr#setterr __classcell__)r s@rrrs # # # # # #                   rrc\ddl}dtjdz} |tjddd\}}na#|j$rT}t |tjt |tjtjdYd}~nd}~wwxYwd}|D]\}}|dkrd}|dkrd}t|dkr/t |tjtjd|d}t||t d dS) NrzDUsage: %s [-n | -t] url -n: open new window -t: open new tabr"ntd)filerz-tr6) getoptrdargverrorprintr|exitlenr) r.usageoptsrQmsgnew_winoar.s rmainr:s:MMM (1+ &E]]38ABB<77 dd < c #### e#*%%%%  G$$1 99gg $YY! 4yyA~~ e#*%%%%  q'Cg $KKKKKs+A B%A B  B%__main__rDrO),rPr:r#r8rdrg threadingr __all__ ExceptionrRLockrrrrrrrrrr(objectrAr&r%rvrrrrChromiumrrrrrrrfrrrr:r r rrrBs;EE  J J J     I         #e # # # # #5555D&',D!!!!!&!!!&[8&LLLLL+LLL^k{[[ K     [   2&2&2&2&2& 2&2&2&j,,,,,K,,,l@'@'@'DFUFUFU^<u         <8////////b#####+###L0 zDFFFFFr