D"""Run the EasyInstall command""" if __name__ == '__main__': from setuptools.c;s.easy_iPpimport 95 () # coding: utf-8 pPackage resource API -6 A%is a logical file contained within a p[F, or. subdirectory reof. The1gAPI expectss to haveBir path parts separat ``/``, *not* whatever6q local :4or is. Do not use os."operations to manipulat8  being passed intokoAPI. is desig>qto workFS normadsystem#qs, .egg{s, and unp6ed . It can alsXAlimi"!ayiR .zipML custom PEP 302 loaders that supb``get_data()`` method.] fp__futurabsolute_" D sys o $ioDtime r Etype-0zip&2zip[uwarning0DstatPfunctUtpkgutil$orplatformacollec%plistlibemail.parseGFerrn)emtextwrapAIiter0ins j   rer tryC } except I1RError$# Python 3.2patibilityQCbimp asJ_Ks.extern?six%.six.moves/urllib, map,tP# capMX se byo sandboxingeoI8mkdir, re, unlinkWRITE_SUPPORT = True1no write, probably under GAEXlFalse @open]0os_ s^split%lib.machineryQ_# access attribut^ fo4Pdelay5 mechanisms.H,6lib`.?5d = Non.py31compat?pkgrappdirs); ag<_ort__('[.+.version') 5 ern.packagin6g.specifiers') __import__('pkg_resources.extern.packaging.requirement:Bmarko( __metaclass__ = type if (3, 0) < sys.version_info <$4): raise RuntimeError("Python 3.4 or later is 1d")brsix.PY2G # Those builtin exceptions are only defined in bPermissionq = NoneNotADirectoryp # decl] some globals that will ber to # satisfy the linters. zworking_setadd_activa_listenert_streamvcleanup 1=_diE Dset_extr}on_pathF/isH4ing-iter_entry_pointsHfilename1FexisH_distribu#efindere_Aspace_handl e6!  PEP440Warning(1"""3Used when rean issue with a  not comply4*OPEP 440. d def parse_I#(v2tryZbeturn .".V1(v)U+(sInvalid/YcLegacy0_ _state_va2{} _<@(var:c, **kwQ().update(kw4Sdict.fromkeys(kw, R$))qB_get#_(bQ = {}ufor k, v2vTitemsFkJ [k] = g['_sget_' + v](g[k]r,s *.{{[k]](k, #, LC(val(val.copy(Qsj-key, ob, 80ob.}"r($ob%soobjectu_7}7_@n1__(0nonN_ lambda *args:0supYed_platformB"""RTthis 's maximumdatible!. ``utils..h?() normally re{[e minimum version8 of Mac OS X that would be required to *use* extensions produced byGdistutils. But wKPe wan en checking compatibility is`know theL0veree are *running*. To allow usage3packagesPexplicitly a newer k, we must also xcurrent7the OS. j'If this condition occurs for any other platform with aOain itsJ#strings,YAfuncX$shded accordingly.D1"""L = get_build_!() m = macosVySsp.match(,'@if mnot None and sys.#O == "darwin":Za6try /A = 'sx-%s-%s' % ('.'.join(__()[:2]), m.group(3)Kexcept ValueErrorj # :2pasiareturn __all__ = [/# Basic resourcee1ess@ribu/entry point discoveryC'H', 'run_scriptproviderU"',AQload_a_a,:mapDinfo;Hiter;s_`B9eamfilename?alistdi@iexists@!is%&# Environmental.Btroldeclare_nPspaceH0wor;1_se9add_activa|_ enDCXfind_Iset_extr9pon_path[cleanup_"default_cach`# Primary impler classeW'gWSROVManag DiR5RbEdPc%',J'Zl7qConflicAiNotFound Un nE+? uR{0WarcPEP440@Pars;0ng 14iti3cparse_/ 0ion2saf e$q%leZyield_linesplit_sen8K6to_  'invalid_mark 'evaluate.7lsystemensure_directoryhnormalizeF "precedence"ECstan?'EGG_DISTMbBINARY, 'SOURCE_DIST', 'CHECKOUT_DIsDEVELOP, # "Provider" interfaces, implementations, and registr/lookup APIsK'IMetadataRIResourceDFile-"',>FPathY 'EggHmptyDe#_pFHNull&8EggxDefault6Ziper_findernamespace_handlloader_typeffixup_7packagesVget_importHDeprecated/backward compatibility onlypun_mainNAvailableD1ibu', ] class lError(Excep'!):PP"""Ab ct base for dependency reso@ eABs"""def __repr__(selfRepreturn 1.__A__._P__ + 75e.args)VersionConflict(cgAn already-installed vC# cDs with the request%.Should be initialized7\h  VQaRequirI. _template = "{dist} is cBbut 1reqCiredx@propertFMrc2[0]??req>1>o re3 .format(**locals())H_contextN,7_byB(If%;Anon-?wa!ofP that,aHCx;uals#whif not{?(ocw! =D + (U_by,)*> (*L&) E+A  acs a third parameter,6`set of *s@d#-VD!, =.f+ ' byXbd_by}'E%R &[2%NotFound{AH{ryA was&f@v("The '/' B! ","is required by {self.requirers_str}") @propertydef req(self):%preturn .args[0]>fD1D Hbif not'the application'', '.joind! Aport  _template.format(**locals()H_/__I !rek) class UnknownExtra(ResoluSError"""Distrib doesn't have an "e= feature" of Jgiven name""" _provider_factories = {} PY_MAJOR = sys.version[:3] EGG_DIST = 3 BINARY_2 SOURCE_1 CHECKOUT0 DEVELOPR-1 rgister_loaWtype( +, y "Re<, `$` to make>ws for `Z` 1 is2B or of a PEP 302 ``module._A_``,l?andis a func that, passed a *N* objectIs0``I SurceP!``I >.[5] =y5get=([XOrReqs=an eidEDmentif isinstancej2, R.w working_set.find;)lI(str)I6try> "s[]Xexcept Key?@__im)__l5lJ_  = getat6, 'b', None)[ __adapter(Ries, [)ks_macosx_(_cache=[]mp,0ion;0lat@.macC([# fallbackMacPorts 5if KF= ''bplist = '/System/Library/CoreServicesV.4Gif os.path.exists(%"aif hasv#lib, 'readP'3;,p_contenElib.:r6if 'ProductQ' in EU :? 1['ProductVersison'] _cache.append(version.split('.'))*rreturn -[0] def _macosx_arch(machine):2{'PowerPC': 'ppc', _MacintoshT}.getF$, Okget_build_platform(jB"""RTthis 's string for-specific dirbutionsXXX Currently Nis the same as ``7`utils.``, but itneeds some hacksLinux and Mac OS X.-1"""from sysconfig import ) =( if@.!( == "darwin"x1not.startswith('#-'U2try % =v! = os.uname()[4].replace(" ", "_"2a"%d.%d-%s" % (%4inth[0]), M1]),2 'except ValueError # aomeone is runng`a non-mBtem,Iwill fall# through toipdefaultplementa 4Apass41 :VS= re.compile(r\q(\d+)\.-(.*)") > #-7>E # Abackward y8at  /EibleQs(provided, required"""Can codeV`.`arun on[`C?K?`s trueVeithe4```None!orNvbs are equal.NNility cheojunixy OSes 4if 5 or (=,# easy case;J?BTrue# &!al1mq=)os*t.match(_I if6MacD #)#apackage?1if 9rovo=:4is s"ibS s vt befor(Hsetuptools 0.6. All 8@aftePoint G1use?2newJx design* D2 = x'45;@:  dversion = int(provDarwin.group(1)) (Vmacos8"%s.%s" % (reqMac;), 2L6if = 7 and a>= "10.3" or \F8F?4":Breturn True # egg isn'txlegacy d) 0HeFalse # are they same major Fhine type?<0if W: !=Y 1) 9-3)9*3)!isrequired OSupdate >= pzided on[Q2)) >s #*# XXX Linuxother platforms' special cases should go herS def run_script(dist_D", S_name>`"""Loc'PributR`5`run its `B`O1"""ns = sys._getframe(1).f_globals$?q= ns['_B__']s.clear( "0 = )W)[0]., ns) # backward compatibility 70maiC ;! C@get_r7Rwa current , object for a R|m&or string7if isinstancedb, six.&_Rsv0f( =SR.pars:<RMrH>not Di*M raise TypeError("Expected,,I!",Azload_entry_po!, ,3"""`3!` 5 5Q of `3``aImport"r .];A_map^G=Non9the2map[`8$Cfull)?map Q0Hinfo^EPb+ ``/``, name) class IMetadataProvider: def has_mb(name) """Does the package's distribution contain#>$d MU?""" g?getg JThe ? resource as a s/ngSo_lines_Yield[ list of non-blank comment W Leading and trail whitespace ispped from eachD,4NZ with ``#``cQfirstcharacter are omitted.mo_isdirI \a directory? (like ``os.path.LO)``)l3nLMy#s trM orun_script(_,So wExecute6}rsupplie 0dic1ary class IRy,(>z"""An object that p_s access to8sl~P_file(manager,5v;"""Return a true ;psystem e for `YU`# ``` must be an ``M/``ostreamrreadabl-t<P?ingq@ents2`<(  > , \ 5( 5">_w>#>WorkingSeta colleiactivers on sy@ (orypimilar  __init__(self, entries=NonDCreate wB setS? (default=uk.+A= []a y_keys = {}  self.by_key = {} callbacks = [] if entries is None:@= sys.path<1for=Ay in :ies>{@add_G!y()A@classmethodrdef _build_master(cls)P1"""(Prepare the - working set.(4wUcls()6try`Xfrom __main__ import __requires__;except I#ZErrorJ1# Tin program does not list any XUmentsZreturn ws,c# ensu9 5metA 3ws.1(VersionConflictCcls.- ^; T@cls,)__specB6( a J a: B. Rewrites/# try it without defaults already onC# by start; an empty =&[]0reqZparseZ2reqj@dist-`solve(?, Environ&()\4 pws.add(Q# add@miss-_,e" Hqy i.2 ;O=#pn copy > to[:] = wslG ,yzAP item{$``\``, find/Tributions6&it ``+_$(, True)``@usedf- -correspoy to``y, andy1added. `dIalways appendw peven ifigpresen}A(ThiVbecause ``P`` caPntain same value mo%anEonce 1 of? \W Set should PYequal.*5XSs.set.Bies.@']" 8\, False)  def __contains__(self, dist): """True if `` is the active/ ribution for its project"""Hpreturn d.by_key.get(S.key) ==L 2Cfind:reqaFind a1} matching requirement `req`T If re/anFTesteda, thisKs it as longrit meet#@versKspecified byLp. But,j?thehu and itOdoes *not* R, ``VConflict`uraised.N4/no4``None``O2is ;d*- =*1req)If@not g @ in# XXX add moc5nfoQ  ,M)-_iter_entry_pointsgroup, name= aYield 7 70 ob?s from `>%` `H  _0, ySXs allXEs inO\5all8M*@workT`set, owise only onesGEbothe2areaed (in:ov order)tU? 7Bies >TAmap(:!if+ M!o epm[.values((k5 ep%elhn>iesk;pntries[]Lrun_scriptEF2s, _1"""Locat`!s`"Wrun `E`RvnS sys._getframe(1).f_global = ns['_E__'] ns.clear( *;5ame1.(hs)[0].nV, ns)5!__ fIvsnon-dupli;Rf#ThL,9Qwhichvitems' pathF weradded to.m seen = {}0ew< mif item not in self.entry_keys:  # workaround a cache issue+continue for key in selfmn[item]s!if12not5.en$seen[key] = 1tRyieldwb/def add(, dist, =None, insert=True, replace=False)"""Add `?A` to- ing set, associated with ```$If is unspecified, it defaultsXthe ``.location`` ofw.On exit from this routi{gTaddedT0endJ_5ingNPset'suies`` (if wasn't already present).pis onlyhsh# P0's %a project that9doenahave a@ribu'uunless ``$I"'s , any callbacks registerU``subscribe()`` methodqwill beE&edh5"""$N95.g1_on3iesy)c"if \1y ='6" =*C.sett(Y, [])526  >0if B and # ignore hidden55rosIfreturn.M[% 9!ifL. inv ).append(>.C2D2E_A_newgqresolvequirement$vbtallerw_conflicting, extras8 0Lisl'kSs nee@(recursively) meetv7`reP must5a sequence6``R&b0s. %5v`,if suppl)ashouldNn ``Environ" ``tance. If@A j,alavailable in5L)9 or&2ins `,MMTinvokWeach @@ can bee by anG-pk; it should retur n a ``Distribution`` or ``None``. %Unless `replace_conflicting=True`, raises a VersionC#` excepfN%if !any requirements are found on the path that havecorrect name butN0rwrong v'. Otherwise, if an `installer` is supplied it will bePinvoked to obtaid1 of and activatNtRq`extrasda listHtbe used wi9ese,.@Thisimportant because M 6 may look like `my_req;L2a= "my_ "`, which would oQ be interpreted aepurelyNo(al. Instead, we w toN@ablebassertFthesDe,EtrulCd6"""# set upUstack Q=(u)[::-1]0Kof proces/(E= {}# key -> disYbest (4to_@V = []2reqs = _ReqEI&()## MappingS[ !ofsi) #ful for re_Xinfo about s|J_by = collecs.defaultdict(setJwhil:5#q dependencies breadth-firP1Xreq =ws.pop(0)W if#4 in_*edxK# Ignore cyclic @dund [:continue`if noty.markers_pass,.s)SO0 = I@.getDM.key(0is \a# Find&J &dHk=mapa= self.by_key 3\(" in%zzRw `if env-$i$)-R= Environ(.entries0NelseP# UsePemptycpworkingto avoid # any further conflicts with the_ing # distribution+ env = Environment([])2 ws = WorkingSe0 = best[req.key] = env._match(kreq, ws, installer,,dplace_3ming=re@!ifC is None:;requirer d_by.get(?d?gaise DNotFound>S.rsCto_activate.append(s )not in reqq# Oops,b"}" so fa@a dehMencypt_req =k ]1rVersionC,= ).Ytext(_)) NR# pus"0new=zas ontoYstack70new,=.ts.extras)[::-1'g' S Register needed by Kfor ] s .A].adg.project_name@2eq_[B:rasprocessedv = True## return list ootros to +Idef find_pluginsNbself, _env, full =Zfallback=)L"""Find allAable.es`m`@Example usage::Da, erroLwa__set.B0dirW  S# addQs+libzsys.pathzaHmap(Jadd, [sdisplay Mprint('Could Tload'0HThe P1 sh4be an ``"``%nce that(UtainszJonly)0are\B's "F directory" orKQies. V`, if supplied, Ocontains all curr'ently-available distributions. If `full_env` is not supplied, one#created automatically from the ``WorkingSet`` thisLamethodE alled on, which will typO mean that every directory onO``sys.path``Abe scanned for 9@instra standard  back as used byD`resolve()`` 0. T@fall;` flag indicates whether we shouldNattempt to W older vers of a plugin ift newest#LTot beK&d.CThis returns a 2-tuple: (``, `error_info`)5erek .`a list NP found" `qMwere load, along with any o? U7are needeSKtheir dependencie0dicary mapping$un o an excepCHnce describingPUoccurred. UsuL4Wa ``D@NotFGU`` orP2``V)pConflic{Ence.&6""" projects =(Eenv)8#V + names in alphabetic ordeE1s.sort()|TU = {}i U4if UNone:env = Environment(self.entries,#+=J?elsX|+67shadow_set = x__class__([]}# put all our LATIV(map(Q.add,`)Ol_P :}2m*Henv[E]37preq = [:.as_requirel*)]b/:tryev(req, env,HGllerAn REvvq# save } jO_] = v)pRA# tr9Z next%ra@vcontinus # give up on this project, keep going mbreak ]else:Dlist(map(shadow_set.add, resolvees))9distributions.update(dict.fromkeys(CD# success, no need to try any more versb9 ofP 1 =  v.sort()Hyreturn %, error_info*def require(self, *fments)"""Ensure thatX matching `>` are activatedr &must be a ng or a (possibly-nested) sequenceIthereof, specify;the6andfd. ThJ.value ism TbJfulfill zX; all relevanM&arNincluded, even iRPey weYflreadya# i@work -5"""  = .x(parse_( )^1forfsM*X@add(8h3subscribcallback, existing=TrueInvoke `- ` YufIIf `P` (default),OI. ones, as well.,T0if ;sF +.append(<eif notT  -\_added_newCvV<Z.  d_getstate__f`% (entries[:], y_s.copy()bIKP, e_k_b_c}i", t,4s =5c"D^ &q# =z$& =[:] class _ReqExtrasMap eache6 demanded it. """ def markers_pass(self, req, extras=None):.;EvaluateC@ for< against eachHU thatEdemanded it.OReturn False if theNShas ad and failsMeion. OtherwiseNUTrue.,k_>Us = ($Breq..!1({'2"':)})2 @ in FQ.get(Iq()) + (`s or (T&,)A r0not42anyB) class Environment"""Searchable snapshot of distributions on a s*P path__init__,4_4 , platform=get_supported_1(),YZpython=PY_MAJOR^S Qavail A;AnyPfound`` are ad!togeE- 4should be6`quenceU```sys. `` items. If nojlied, .gs used`3` is an op0al ng specifying1nam+;ks-:+ic"@mustpcompati3AwithJ#un>it defaults ?ucurrentmB. `J 4namdesired version\P) (e.g. ``'3.6'``);OG]You may explicitly set tu(and/or) ``Uf you|@wish map *all*Z, j_kthose bL@runn: ._*E= {}SP= !b"=  Wscan(9)k scan_add0 )Is `#` accept1Wthis |?a:TheBPmatch::prequires:ied when { was creat"orK2is 2py_ Lh0is MWF!orC.py_'"==jU Npy_compat an d compatible_platforms(dist.e, self) def remove( , 4!): A"""R ` ` from the environment"""1F ._,@map[c.key].e{Cscanysearch_path=NonegScan `$Q` for ributions usable in this;Any6found are added to. should be a sequence of ``sys.`` items. If notJsupplied,.ed. Onl0coneing toJ/python versionined at initializa-7if m@ is K!$= k, E%%Afind;(@ wf1addPP__get4#__Wproject_namSReturn a newest-to-oldest listp`O`Uses case-insensitive .rison, assum0alloa+'s0use(6ir " convert5allJPlower3 as;Fkey.d_key =h:.M%()]r=qmap.get4IG, []5i4Addfif we ``can_3)I and it hasL already been4lf.M)L S.has_0(k 2s =:setdefaul!if!in s*ad.appen#sort(key=operator.attrgetter('hashcmp'), rege=Truexbest_match($f req, working_set, installerW`place_licting=FalsTAFind y yQ`req`{Gon `ySTAcall0 ``@(req `method Bsee if aAsuitN%isC acA. (xmay raiseB2``VT@Confuf an un^{w ofqB>Opspecified !.)7%a an is+n't active, this method returns the newest distribution in# environment that meet>``Require ``:`req`. If no suitableM is found, and `installer` is suppliede result ofOpcalling 's ``obtain(req, [4)``fwill b5ed.^5""" Etry:  = working_set.findp))except VersionConflictIi*t replace_c%:ing(uFrais6Non!ifF@not  K%1forself[req.key];\Zn req[# try to download/}6x. ,Cdef ,,=)A"""O! aPmatchAI` (e.g. via) JoI(esFNbase ``Ee`` classis routine jus%>`5y)``, unlessW* which caP5!ed7wead. T@is a hookPallowb%esto attempt other ways ox before fHbackN`` argu{.!ifJ )er?m__iter__(o RQYieldzunique project namePavail ysz4keyy ._0map~'s(u00if [y9key3add,Ta"""In-{Q addi,of)(or`osGAnce(7, DPmB.add++lJ I7s"ink&P^[4 ,5*se] TypeError("CaqPdd %rB" % &,)Tg hAdd an ribution to an environment""" new = self.__class__([], platform=None, python )=for env inB, other: da +='6return new # XXX backward compatibility AvailableDistributions = En1 p Extrac"Error(Runtime )p"""An e occurred e8ng a resource The followites are a from instances of this excep:NqmanagerZ^p  that raisedFEcache_pathHbase directory ["onCoriginal_  G0cauJ to fail>QRAMx`von and packagesKj0 = def __init__(8.$`d_file-&{}8q_exists?,~_or_require(,W_namef"""Does the d* X?get_provider( qd).has_( ~_isdir'I"anQ&/C)%'Rtpa true Ppsystem J/specifie%k _ ostream0@readQ-like objectI$?ing.` as a _/ng2K(*Olist*List the contents of the named resource directory""" return get_provider(package_or_requirement).J_listdir(FMw!) def extraction_error(self): A"""Give an  message for problemsFng file(s)E old_exc = sys.exc_info()[1]$cache_path'Gelf.!ordefault_1(tmpl = textwrap.dedent(TCan't to egg U0 Thsllowingoccurred while tryDOWM!tofPythonn:o3 {/} <?A is ntly set toZe ]Perhaps your account does not have write0ess/Fthis?You can change{0! bt8he PYTHON_EGG_CACHEOpenvironp variabu`o poinpaccessiT.F""").lstrip()rerr = EAionEL.format(**locals())7p.manage?5R.i" =U $originaly3 = %Praiser \, archive_,aJs=()RSabsolute 2 in`Kp` and `V"s`@pare! Qresulwill be created if iW_already exist. `shouldH@Abase_xN`enclosT(which mayb8 00zip5!),M`includMits ".egg"8`ensionK0s`,6d, aKsequence:@ parYaunder"%Fegg'N%on.is methodl@only `called[@s that need to`obtain@nu,]Gey intenI?@, asUk-a generAK#pocleanup laterZ@0tar9zP= os. h.join(^ J + '-tmp', *6try"a_bypass_ensure_(target_path3) except EEion:! self.extraction_error() %!_warn_unsafe_.Spath(_ 9cached_files[target(U] = 1dwreturn @staticmethod.Odef 1"""8If the default @ion 5 is overridden and set to an insecureL@loca0 , such as /tmp, it opens up8opportunity forattacker toNpreplace0ed 4P with unauthorized payload. Wa6uhe userNif a know Rused.aSee Distribute #3750mor-etails.]Qif os.name == 'nt'71notRp.starts(os.environ['windir'])# On Windows, permissions are generally rective byKtemp directorieIqwritabl@QotherAFs, sHabypass96ing #~`mode =(YP).st_%0if 0 & %.S_IWOTH or:GRP%umsg = (K0"%sagroup/s0vulD G_"when8resource. Consider a =4K(d"\ .set[PYTHON_EGG_CACHE _ment variQ)." % 1 s. (msg, User\3ingxpostprocess( , a, """Perform any plat -specific Ping of `Q`2Thihere Mac heae rees should be done; ps%'t0havi0ythu alyI'doRP provp0cal82is  ONLY after'Ufullyzwa compressedJ. They must NOT bRn$sNAthatalready ingsystemY&S@curr+(sporary)  ~,7` `|i@will red4!bytfroutinI@ ai bjposix'a# Makenresource executable mode = ((os.stat(tempname).st_) | 0o555) & 0o7777Bos.chmod:!, 7 &def set_extraction_path(self, !):)"""Set the base where resources will be Red to, if needed.xOIf you do not call this routine before anyMions take place, defaults to return value of ``get_&_cache()``. (WhichN!isAd onI``PYTHON_EGG_CACHE`` environment varia, with5ousPplatform-specific fallbacks. See thatp's docuYa for mordetails.)PR*ar subdirectories j3ed upon inzgiven byIfProvider=pYou mayKEto aOdorary Qy, buJn3mus``cleanup_S5 toOPdelet00fil}hen done. Tis no guarantfJmJpremove rb(Note:"ayIhang2ion7"a ]manager once[0hav$ened, unlessw3firGJ%.)"5""" i 1lf.!d_praise VOeError(<"Can't c/!, Tu alread&edD.F! =D37,6ce=FalseDL %ndCies,Uing a listN!of&' a6 y sQcouldbe successfully g%d.PT1fun@ doe!t concurrency prote), so it shjM`generah@onlys edg`e is a I exclusive%a singleis methodM&no+automatiy1ed;  it explicitly or registerFas a``atexit`` 0i`@wishsensure , @usedBm}7# XXX _B1RE``PYTHON_EGG_CA@CHE`` environment variable or a platform-relevant user cache dir for an app5named "Python-Eggs".1"""return ( g#s. .get('PYTHON_EGG_CACHE')+rhPdirs.__dir(appz'='y9) def safe_%(!):V"""Convert rbitrary string to a standard dipbution E D,Any runs of non-alphanumeric/. characters are replaced with^ingle '-'( re.sub('[^A-Za-z0-9.]+',1, version(@=2try<# normalize the 81 rstr(packaging.%+.V~except /sInvalid6O$ =~.d0(' ). V Q Yaextra(UP':'641_',j1and~ result is always lowercased]-^A_', !).E(pto_fileI projectBLODits @-escaped a<'-'currently?/'_6-$_'iH_marker(textPVh@ate  as a PEP 508.A#; 2an 1ionG3if l False otherwise UevaluateR` SyntaxErr6s e $e.]b = None.lineno) 7=a ;E3 Ra boolean indicaty2he _ hn thisGIaise$if<$is.`TCPimpleaAuses?'pyparsing' modul =7s.MY[$.V('#s.Rr (eclass NullProvider"""Try to implemen@t resources and metadata for arbitrary PEP 302 loaders""" egg_name = None Hinfo8; def __init__(self, module): K.<getattr('R, '__A__',):)_path = os. @.dir(OAfileMB''))Dget_'_$@, manager,H_preturn .A._fn. :wastream>uio.BytesIO9.string(6.R._get5hasA 31 m1has/w pA/, ?y%Jmm bif notAH'%""rvalue =5yHGK@.decode('utf-8') if six.PY3 else & R_lineddWyield(@(r(Sisdir. b1 _CkVJ:}'LOlist3lixEVDelf.:H9Z&[]Mrun_scrip4", ^@Ispac-.B = '+Xs/' +7R](9aise ResolutionError(M#""S{E1!r}found inZAat {&6!r}K.format(**locals()),t>qT_text V).replace('\r\n', '\n'3) script_text = .replace('\r', '\n'6filename:elf._fn(s egg_info,R:/space['__@@__']@#if os.path.exists(*%):,PsourcMopen,f.read(20cod0compile(Aw, 'exec<(A , % iJelsefrom linecache import [2('lE), 0q.split(H NX}5 = )Y M.M* !) def _hasQ ,  raise NotImplementedError,"Can't perform this operation for unregistered loader type"_isdirzOlist}, base, reT_#*if ereturnRjoin(P*Q6/')=0N?getif hasatt., 'get_data'`-.+(>6gs without9()' _3_(object, NullProvider) class Egg("4"""d on a virtual Csystem"""ps_init__tgmoduleIi/._-Gj_setup_prefix( ,g# we assume here that our meta may be nested inside a "basket^# of multiple eggs;N`'s whyhBuse _L@tead8.archive! = .4 old = Non3Qwhile r != oldpif _is_~]# se lf.egg_name = os.path.base(;) #se7Ginfo7Ajoin3, 'EGG-INFO'?proot = e dYbreak?old-> , Qsplit) class DefaultProvider(Egg !):j3"""$s access to package resources in the filesystem""" Bdef _has(#,\Cereturnfdexists!?_isdirA*)OlistB' ?Dget_s_streammanager, 61pen33._f pmodule_k ?h, 'rb'1get? ?`with o^I9B as Glc.read(e@fmethodregister(clsaloaderas = 'SQFileL$',Hless[@for M7O  clg getattr(importlib_machinery,L, type(None)a_Q( Pcls, ; $._9'2SEmptydr(Null "1rr that vs nothing all requests)0 = _! =F = lambda Or: False.007 ''-Q1'[]1q_init__+pass e"#_pS: = 3}ZipManifS(dictL{Szip m! builderB! * -8YBP0 a xionary similar2zipl directoryu>caches, except instead of tuplstore ZipIobjects.EBUse a platform-specific separator (os.sep)6U keysPcompatibility pypy on Windows.0*0zip@.Zip}Dz @item(O.replace('/',,A/r@.getF(=)) 7-OC(- dict(items)  load = build class MemoizedZipManifests( ): """0 zipfile m6. (0_mou collections.namedtuple(''5',  mtime') U1def(self, path La1 at. or return a suitab alreadyd"edN u` = os. P.norm ()&'BstatA.st_("ifpnot in [R!].12 != :6! =:.l(O*:( ,dm9,@.,9ZipProvider(Egg """Resource support for6s and eggs_eagers = NoneT_zip_tx(__init__#cmodule.,x+.4pre8<er.archive +2sepzipinfo_ fs# Convert a virtual E4b (full!to) into a6'@ subRA# uswith the*!imndirectory cache~our target K2 = .rstrip(os.sep#if!# =|  G%''g@p.starts.q.BK[len-]Zraise AssergeError(Lp"%s is sK of %s" % (d,Rkp,q_&n`-relatN@ UV list# pseudo-fs% +)oegg_root-y7) + 1:].split&;t@property Z./ cUSget_r_4,i%, !{!ifq{ %NotImplemented"fd) onlyd!ed.egg, not .zip"  ") , # no need to lock for extraction, since we use temp namesBzip_path = self._resource_to_zip(8zeeagers6Aget_@&s(-if '/'.join(fdparts(}a)) in @%s:y $R@(man,^S)dreturn)>I @staticmethodPdef _ date_and_size,)0 = RQ.file-H# ymdhms+wday, y5dst!dHtimeH+ (0, 0, -1 # 1980 offset already doneWRstamp = 0.mk(ZN72n"ze  %, }"):5!if2._index(@* '[X]q1Elast +0os.d,Q6 $# -$heed directoryE ~0t0dir(). |"vzipinfo!Kif not WRITE_SUPPORT@raise IOError('"os.re`" and unlink" areNsupported '&'on this platform'>7try0Dreal.Qcache(l@egg_  5t#ifis_current(, :-outf, tmpnam = _mks3".$)",FLdir=)q)0Z:os.write('aloaderSAdata1;Bclos; Vu(0, (! Mpostprocess@ <<except os.e P if0.is2?_#>`# the m became current since it was checked above, # so proceed.'return real_path)# Windows, del old file and retry6elif os.name == 'nt':*uunlink()* reR(tmpnam,2  eraise r`exceptZerror # report a user-friendly ,Dmanager.extraction_%&()l Bdef _is_current(self,uQ, zip )1"""<zRTrue if the=C is X for thisPBNtimestamp, size = ._get_date_and_.zipinfo[]Qif noZm0.isH( UFalse`stat = <"0if 1.st2 !=%ormHz#|Q thatScontents matc;,sloader.2 a($with open, 'rb') as f2dvf.read(N;g'=ke_resources_VAelf.'sEJNoneE= []Og in ('native_libs.txt', '9||Dhas_metadata(Y,0Ws1end;b_linesA;9>2 = \$JQindexk:try)CA_dir6aAttributeEind = {}4gUg |*parts = ..split(os.sep+ wh1H! paep.join(0G[:-1-3if 8oin ind[.Bind[+P].app]\6Ybreak;elsn0 = yts.pop()_ = o7ind"haW@, fs{#]o_name(fspatCh) return zip_path in self.zipinfo or_index() Fdef _isdir(:@, fsJ!):gd#._Yc_name(+vZOlist\&.CC.getsX, ())eager_to8, resource!fnA.egg_rootJwdz:amodule} register_load@ype(&Qmport er, ZipProvider) class FileMetadata(Empty$4"""  handler for standalone PKG-INFO filesLrUsage:: ;me* =t "/dD/to/G"VcThis p rejects all U and Urequests exceptP,which is treated a-qisting,Mwill be the contents of1 atJ d location.2"""Kq_init__C , {a! =8Dhas_<c<T == ''0os.X0.isBW?getc 1if _!_raise KeyError("NoxavailableD wiSo.opek, encoding='utf-8', ees="replace")f6 = f.read(p_warn_on_FTment(6,`@Z,# Python 2.7 compa': ~_char = '�'D!b'\xef\xbd'.decode( .if_%in 1tmpl = "{%} could not properly odeUTF-8"`msg = N.format(**Fls()*Pings. O(msga_lines,XWyield((DPath(Defaultegg directori# DevelopUW eggsA'= ackageNameb-!Xpbase_didirname(egg_info)  metadata = PathM(base_dir, egg_info) 3 dist_name = os.path.splitext(A$(@I)[0]D = Distributiontsbprojecd=n$, = %) Q# Unpacked directories:%P = "/ /to/PackageName-ver-pyetc.egg"at *T, Ajoinb,'EGG-INFO')C .from_file7@2"""def __init__(self, 9:.module_%! =, 8 =K class Egg$ZipProvider)c4"""# pP for K s eimportNCreate a [rom a zip;_=`zip_pr$.archive +:seploader = 0%ifr.prefixlp ^Q,O!Oelse] PQ_setufix() _declare_state('dict', _c_finders={}3]register(wa_type, >R</ `eP` to p Drs in syYb items`y` is the B or of a PEP 302 "IR9" (R*handler), andis a callable that^fssed a;E instance, yields ``%``"s found ong]. See ``pkg_resources.81_on!``fan example.[9] =0 g s(9_, only=FalseY Rs accessiDUvia `C`t = get_m_adapter(_<areturnq%er'thk_eggs_in_zip2 1Fin2zipA; po y multiple nest!s.;p.endswith('.whl'w# wheels are not supP d 1 this finder  # they don't have PKG-INFO metadata, and w"ever contain eggs G return9s = EggMG(importer)%%ifaT.has_5$('1'):*byield Distribution.from_filename(path_item,W=SqFonlyT#\nested dcopfor sube5 ing.resource_listdir('/if _is_egg_(C0sub` = os. X.join87s = findcs_in_zip(zipp. er|\ ), NRs-m-:@elifP.lower().endswith('.-X-infoL$0sub ^uB. ='u@locaY) register_/er,;2defunothing= , c=FalseN (C ~cobjectoW(k_by_version_descenduZs[1"""Given a  o#s,QmBIa order?3by i number. A>>> o = 'bar', 'fooPython-2.7.10 2F &/['S]< Setuptools-1.2.3b1<, 'ABZt+Bpost+H O ~(r' Parse each componentDthe -9TW, ext^splitextq7@partPAitera.chain&.4('-'), [ext]Vy[packaging. .p(X ) ` "s]>sdlws, key=)_Tde=TrueZ2_onZ/er$ """Yiel+d distributions accessible on a sys.path directory"""  _item = _normalize_cached(!) .if _is_unpacked_egg$:$Vwyield D.from_filename(*.f, metadata=PathM . 2oV.join, 'EGG-INFO')m breturnentries = safe_listdirZ # for perf4nce, before sorting by version,# screen bAonly those that will >4 filtered = TyZ% io!if-1_fa ,0y, Ascan.egg and P-infodWf_MC_by__descending(o F_@full? = zyV/ =7!or10})+-_ deeCR! aFva}l<rlower =.(0is_V = any(map(.endswith, ('P', '.t2'))D!p#o_e4if |EelseYfind_Aaif notem@egg_()) Lpresolve__linkJ 2'R Nos=) class  >>> bool((0 Fa#E#('anything'/![]+> __Xw__(selfkafrsix.PY2__nonzero__K]Ccall]/, gPiter( Attempt to contents of , but suppress some excep.6try0os.XA (PermispError, NotAD#Apassp?!OS"V as exP# Ign6the< C1oesaexist, _1 or^k#'u deniedi_a6ae.errn^( .ENOTDIR, EACCES, errno.ENOENT) &# Python 2 on Windows needs to be handled this way :(Bor getattr(e, "winerror", None) == 2673if not ignorable:$Qraise"return () def distributions_from_metadata(path)Iroot = os..dirname"X%ifRisdir=if len(os.list!0'+# empty dir; skipj#.t= PathM , -7els6EFile60GntryKbasewyield DJ.I@locaXeS, , precedence=DEVELOP_DIST,Anon_h_linesa1"""+YAnon-) ) file at ,4with openQV as f1forF8 in]! =.D"p(a'inl/?resolve_eggkqGiven aLan .egg-link, B ppresentthe referidJ.$d_Os = u5sd+&1joiM 3f/f0ref l*`_groupmap(find_YM:rPnext(/F@, ()^register_P er(pkgutil.ImpImporter, 1_on) if hasi$lib_mach@y, 'OtFinder'D g8.6 r _declare_state('dict', _bspace_]rs={}) /rpackage/  U(er_type, !C"""R- `%`C  `kP` is x or class of a PEP 302 "R" (syQ itemPo), andis a call:Q like"::, a_oduleName, m I## 8@use @chilPErs are onlyQed if*@p object alreadyAagreat it canS>rrelevan+F9they should only return a subpath if the module ____ does not already contain anHequivalentJ. For an example namespace handler, see? ``pkg_resources.file_ns_)1``.'1"""_K"s[importer_type] =o$s def _ns(packageName, aitem):e"""Ensure thatO#d 2 includes:&ofC (if needed)Qt = get_(y'$f  is None-loader =3q.find_m)/3if 2ZCr = sys. _s.getU  E[Dv1s.MNTypeaJ.A= []_set_parent elot hasattr(N4, 'P'N`raise Error("N :"+8aA = _adapter(,;y=(h0th_ s,@$ifr2^# =3@;.append(X ,.S(q_rebuilx2wq FAorigPKQaR e2ingall entrire orderedcorrespond/o !ir(,*t1sys = [_normalize_cached(p) for p inE!] ATsafe_Bp_index(yiWorkaroundW#520 and #513!&22try$y.u%except ValueDfloat('inf')position_inRtordinal orbased on its \O;Ats =.split(os.sep*dd.count('.') + 1g5parV98[:-Hl+a.join(d#))Visinstance(GlistZ# Is this behavior useful when module.__path__ is not a list? qreturn orig_path.sort(key=position_in_sys)-module.___[:] = [_normalize_cached(p) for p in a] def declare_namespace(packageName):iB"""D'c that "# ' +'%a G%2"""_imp.acquire_lock(2tryf$if8T_ns/3?>, parent = sys.ANone&`if '.'aVp YC'.'.join.split('.')[:-1]ZU &?in \_Ibort__( U O0 5"s[<]>0except AttributeError'raise Typ!1("NR$:")3# Track wHVs are:s, so when new Bitem'eadded,# they can be updatedQ.setdefault@, []).appendXG1Lwm*thH# Ensure all,'sreflectedHthe chil ^ ifEuy apply_handle_ns0th_gfinallpu.releas<_fixup(T_=}NMreviously-7d s include[YX?6.ge#()a0sub> = GC-3if 8  ;2Ur(importerR ]", """Compute an ns-Ka filesystem or zip l}B = oITSd}a&0or >if #6U) == ad2QbreakFelser# Only { if it's not already there :return subpath register_namespace_handler(pkgutil.ImpImporter, file_ns_%)A Azipi9. C if hasattr(1lib_machinery, 'FileFinder'):C.A def null+ _item, packageName, moduleZONoneW |object,p#) ormalize_w(pfD"""N!0 a P/dir # for comparison purposes"""30os.Z.normcase(@realt_,ecached#1, _3={}2tryro$[]except KeyError5 . = result = Rr1Sr_is_eggQ8Determine if given & appears to be an egg.j:. .lower().endswith('.egg'DPis_un@ ed(5%I(E and is Ajoin, 'EGG-INFO', 'PK !))Cset_parent_ns('xparts =A.split('.'L"rts.pop(1if =!hs = '.'.2rts/1setMBsys."s[5!],+*, ]yield_lines(strs@"""Y non-empty/ comment 0 of a string or sequence5if isinstance]b, six.2T_typeo@s inRs4g($^sE:# skip blank/s$@if sP not K#x($ DFelse:?c&! s MODULE .ile(r"\w+(\.\w+)*$").match EGG_NAM-r@(?P[^-]+) .->ver0-py /py"&$flat>.+!)? A""", re.VERBOSE | re.IGNORECASE,  class EntryPointa"""Object represefnting an advertised importable object""" def __init__(self, name, module_name, attrs=(), extras=(), dist=None): Kif not MODULE(D)$( raise ValueError("Invalid 4 ")=.!! =( A# =O 'a = tuple( be# $0 = P3strO`s = "%a%s" % o!, g"if Es += ':' + '.'.joinT,CD [%s]' % ',H1Ireturn s?rep*"EntryPoint.parse(%r)1str)KAload , require=True, *args, **kw RR4 packages for this , then resolve it.K@ or x Bwarnings. (Q"Parameters to are deprecated. Call .^and "I.separately.",(DYBionW$stacklevel=2$if (-p(6 eG pH from its .U =.,Ulist=['_b__'], #0:tryfunctools.reduce(get sNexcept Attribut { as excg0I1BIexc)U7UQ, env, installero\JUnknownEt("Can't(() without aBion"Q# GetJGmentT !k#Hthem. We havesbpass `9` along w.)soNaAwork0et cs what we want. Otherwise,tICY-info s ]will assume tc7theH#Kpurely optional and skip over them.  reqs = self.dist.requires(uextras)/@item0working_se2`solve(K, env, installer, B=Nlist(map(OQadd, h1)) ypattern = re.compile(gr'\s*'(?P.+?)=,module>[\w.]+1P(:\s*&Dattr$/)?Gq>\[.*\]"$@classmethoddef parse(cls, src, q=None):$@"""P' a single entry point from string `src`49E'syntax followsv form::/38Bome. :s ! [1&2];$ThAq> 3re Xad, but0``:W0s``"``h@s]`` ts are optional(5""" m = cls.*.match(srcvf not mXqmsg = "*PPmust be in '=1s]'>&atNraise ValueError(msg re?m.groupdict(___b(res[' &']2@0s[' '].split('.') if 9g else p`return9`2'],4>ss W_speci  Rq = RQment.%c('x' +jf q.{s_ WzBreq._ c, line.n:"qMODULE(@r"Invalid ."", 0thig%{}'1forayield_( t%epn#`if ep.TUs ( 1"DuplicatP,RF\[le] = ep"Bdata~ map ofs!is Dnce(X+ctR0 = . 9'@_secs] maps = {}   for group, lines in data: "if% is None$bif notD"continueYraise ValueError("Entry points must be listed9s")J" =z.strip("nn mapsDuplicateXr name", ^R[] = cls.parse_(cf, dist>Rretur def _remove_md5_fragment(location)qOO!''d = urllibA.urlU-1if d[-1].startswith('md5='ze U!un@(d[:-1] + ('',)version_from_file(q1"""Given an iterable ofr 9p a Meta D", n<Pthe vc4 Vs field, resent, or otherwise.C4is_.lower()O<":'_00s =Kter(e?3+ = next((DC), '\S_, _,=. tiK$('*T safe(/J) class Die buI~p"""Wrap`actual4potential syAth e3w/mYPKG_INFO = 'PKG- !' |t__init__(gdself, Q=$, Zproject_ C;4 py=PY_MAJOR, platform$ >precedence=EGG_DIST ." =f(or 'Unknown3if }dq ea67.' =S# !w% = !D* %_provider =;Uempty @}amethodF_F(cls`, basem G**kw,t,@ = [Q] * 4Xirext = o`.split!dif ext#_"riWJImpl cl  %[F]) match = EGG_NAME(basenamGe) if match:! project_name, version, py_ latform =E}.group(KO'Hp', 'ver$py Mlat'3return clsYQlocatmetadata, = = r= 3, p= e, **kw;)._reload1() Ldef Vself)g4@propertyBhashcmp($: $e.parse,I|!recedence:key_remove_md5_fragment.|)1d!o or ''#X !>_!__p. 9cmp;#lt9~, other@;" <&K?_leJ=Kg>J>/eqif not isinstance(L!, <__class__\ga# It's:a Distribuso they are YequalUFalsev=nO Gp# TheseEies have to be lazy at we don't!2 an$#  until/unless iactually needed. (i.e., some d2sQ# may0@knowB0ir L= without ing PKG-INFO[1key?6tryy2_keexcept AtjeError<_.5 = key =6v.lower([tn  qhasattrJ, "_5"u $1 = %pW< gVHwarn_legac!LVsckaging.j!.L5V~v#isN( =, LV) if not is_legacy: ureturn # While an empty version is technically a N 7andE!isua valid PEP 440-, it's also unlikely to@Aactuhcome from someond instead id more F7hatH0it BsCetuptools atting to parse a filenameFPnclud,q@n thpst. So for that we'll gate this warningHGf>VPanyth\at all or;.7 ifc self.7 tmpl = textwrap.dedent("""T'{project_C} ({^0})' beEd as,F4non M. You may find odd behavior and sort order Inpticularqwill be1e@lesszn 0.0. IAis recommendedAmigroypatibles""").strip().replace('\n', ' ')D s. (.format(**vars(0)),B440W(A@property4def56/tr)_Eexcept AttributeErrorM#34 = >_y_}._get_metadataPKG_INFO))kLiKJNonel$ = "Missk"'Vk:' heade!a/or %s Braise Valul" %, Zy_dep_map)JA map of extragits list(direct) requirements):Pis diWbution, inhBnull] t$._:! =@.Ater_t._build*(a Khstaticmetho3 _/dmppGiven avp5zs{0deppncies, Tf`nviron markersfilter out any G<DAmatcA*1 in(d( W, dm)2new[" =yreqs = dm.pop(Y ?, _, marker = extra.partition(':') fails_marker = Yand ((3sinvalid.(, O'or not evaluate/ =8if :reqs = []new_extra = safe () or None 7dm.setdefault., []).extend(qreturn dmI def _build_dep_map(self)udm = {}wfame in 'requires.txt', 'dependCQ7 , >split_secsx._get_metadata(name)I Wcparse_Rments /!, V8s=("""List of R] needed this distro if `G` are used"""K[o.}+ep&Ddepspdm.get(V, ())0ext_z :tryN Z[Vext)]]-except KeyErrorNraise UnknownEI"%s has no suchp feature %r" %  @7eps Ie!, O0if K.hass$jT1lin1[_s 7;`yield #activateRpath=replace=False`"""EnsY0ibu2 is importable on `L3` (P=sys.)u0if >v $= 9insert_on('cJ g`fixup_space_package{P.locaQK0pkg *'MFEHys.modules'vdeclareV(pkg)1eggkB"""RhVwhat 's standard .egg file should be= "%s-%s-py%s!4to_+.project=), version),G_3py_zPY_MAJOR(vGplatformK += '-' +t-Q/ddef __repr__(self): 0if .location!return "%s (%s)" % A,5)OOelseC1str:!) ,def __str__56try version = getatI3, 'w', Nonexcept ValueErrorP7 gX or "[unknown %]"1%%s.project_name,7  , """Delegate all unrecognized public3ibutes to .metadata provider""!if/.startswith('_'qraise AttrW7( $._q/di5Ulist(Zset(super(Dis2ioniB).__N)5 | 7 HA for2 inN :aif not8 0 ,90has}0(ob3, 'o# python 2.7nsupportedcCdel :R@classmetho&Afrom_filekd(cls, $, =g, **kwAcls.F _normalize_cached(`), os.path.bas},8as_requirementYB"""RVa ``R)`` that match Whis d= exactly isinstancek.parsed_, packaging.".V`spec =/==^ c=/UV\,(^yload_entry_poi{, group, VPthe `!` = =Q of `;`:Q ImNBep =3getQinfo(@{if ep is  f0("E!%raQfound a,N30ep.(%1map2"Z!1map, ECfullC8map! 0ep_F6_"e * ep_map = self._ep_map = EntryPoint.parse;( 5get_metadata('e: _p;s.txt'),] =)if group is not None:prreturn Q.get(1F, {}G % @@def Pinfo(,pv, name)kB"""Rj7the object for `z0`+`<0`, `Q``"""vn_2map)(C)insert_onpath, loc=`, replace=FalsaEnsuree.locationO0on Fd*IfG (default(@- If{Jalready iR anywhere, do nothing.C;Els! Yit's an egg and its parent directory,X\+ just ahead of F uq add to)!en4.;Tru]e (Feggs -higher priority than(8cpremoviny lower-6iesj&- $itPfront _ Ploc =Tf# if$w(nL_normalize_cached(locbdir = os.0dir(=%na = [(pT p)!p)LpN]dpp, itemenumerate(\ "if)0== i Ubreak2e # don't modify\u (even duplicates) if\Hq# found#+,7'elDprecedence == EGG_DIST!# C.egg, give it CAoverd # UNLESS %@beenmeo"sy5 O"if=&)3 N[p:]*"if4is @  self.check_version_conflict() path.insert(p, loc$n%n&Ubreak`Uelse:u0if H is sys. !%if replacgF\06}append(ureturn 0# p the spot where we found or U edT; now remove duplicatesNwhile Tru>try$Tnp = @dex(z, p + 1except ValueErrorM 2deltQ[np], :]# ha!>NOdef )"ifkey == 'setuptools'%pignore inevitable 1I-Ys :(R nsdict.fromkeys(._get_metadata('namespace_packages.txt')0locpormaliz("thKlocation,pfor modU1 in qtop_levelh Dif (@1notDys.modulesiin nsp _ 0continueQ(if('pkg_resources',Oite'\fn = getattr(_[], '__file__', Nonegif fn and (nfn).startswith9 orA(fn-#issue_warningf!"M %s was already imported  %s, but%is being added"E" to5" %4R, fn,v,?)4hasp P "Unbuilt egg '0" +r| V FalstQcloneCg, **kw"""Copy this distribu, substituteiF y changed keyword args""}G = 'projectX 4 pyL platformG precedence'= for attr in names.split(): kw.setdefault(attr, get p(self, , None)); 7'metadata', 5._provider2creturn_class__(**kw) W@propertydef extrasI[dep for iYdep_map ifA] j EggInfoDistribution( `v_reload_vers'81""" 'Packages installed by distutils (e.g. numpy or scipy),?which uses an old safey, and so/ctheir Vbers canP mangEwhen3converted to file , 1.11.0.dev0+2329eae tp_). TheseIs will not be{rparsed l4downstream, 0ake'Q step00try{get theU from  0 itaead ofD(.:m4 = _i_9d._get_lPKG_INFOE6if N .^' =(*O0WraGp actualpotential sys.path entr$w/0, .-info style.Y = 'METADATA'EQEQ = re.compile(r"([\(,])\s*(\d.*? [,\)])"_bP_pkg_g P'dcache :try{X.]/except AtHjeErrorAf" = W[r = email.!r.2r()Dstr(hdFib_0 < 6Ut:_0uteendencies()3Co #Re)Y this 's-.%dm|@ = {R: []}reqs = []# Including any condi{p expres_s.Ereq d.Hall('Requires- ')*[]reqs.extend( parse_requirements(req)) def reqs_for_extra(%):#*0for'0 ins!`if not.marker 2.evaluate({'`1': }iLPyieldOcommon = frozenseteNone))0dm[].extend(Aaself._2d_pkg_info.get_all('Provides-E% ')*[] sBr = safe Ow.strip(3dm[3] = list(])) - return dm _dikbutionImpl = {'.egg': D!,-': EggInfo&[' (@} R issue_warning(*args, **kw@leve1g = globals(6tryZ## find the first stack frame that is *not* code inVa#6 resources module, to use [;while sys._getm(C).f_ygr#B += except ValueError.Apassnz s. (F=h + 1, C class RPa(lm__str__(:' '.join.) ACstrsCA"""Y'```` objects]each specifican`G` must be a 0ng,c a (possibly-nested) iterablaereof.G1"""r# creatH1epp*3tor, so we can handle \-continuqlines =j(_(?:a# Dropu -- a hash withoutpace mayin a URLtif ' #']8o2@ne[: .#(1!)]&@# If re a ) 0, dit, and appeiAnext0 AP.endsS('\\' n!4-2]% :0+= y( s IPStopIH &n'Z A(packaging./.OCinitP,ah3ing,"""DO NOT CALL THIS UNDOCUMENTED METHOD;o.|4()!M <gsuper(7, self).__ini t__(requirement_string) except packaging.-s.InvalidRAe as e:?Fgraise $ParseError(str(e)oself.unsafe_name =  Uuproject!-(+ Q1,Qjkey = {.lower(Ispecs = [(.operator, version) for2 in{eifier]FPextra^tuple(map( s1hashCmp = (SWNkey, frozensetLo $Zmarker) if else None7 G __0 = j QCmp) def __eq__, other)Xkreturnisinstance(0,uQ) and]x2 ==d.* /ne 1not QcontainsEGitem7if @, Di0butM/@tem.!):key%).RFalsed0 = .! # Allow prereleases alwaysorder to match the)vious behavior ofI# this method. In3bfutureshould be smarter1 fowPEP 440Omore accurately..}(,Y=TrueX,Orepr4" .p(%r)" % Nr@static&^2s q,K_&(sm`req H_0_obAt(classeW1"""q0Ens$q appearmro even*old-style NM3if I$in&>B + (1, find_adapter(reg%Sy, ob#B"""R#3an ( factory`ob` from `?`@type . inM t.getmro(getattr(ob, '__P__', ?S(ob))&t2s1if 3[t]eQ_direV(pathAthatauparent / of `path` exis ts""" dirname = os.path.( )$py31compat.makedirs(& , exist_ok=True) def _bypass_ensure_directoryU:V"""Sandbox-.ing version of <)if not WRITE_SUPPORTT raise IOError('"os.mkdir"5 supported on this platform.'CfileRsplit%if9Eand * Tisdir$)uBt, 0o755^_sections(saQ` a strN or iterable thereof into (=, content) pairs sEach ``$S`` isTHppedCthe ' header ("["]"eSnS@list[lines excludbblank 1andcomment-onlyR. If are any sucha beford firstN,>y're returned in a0 of ``None``.A0 = Q = []1for]ayield_!if#.startswith("["!%3end#]#'$or##O=q[1:-1].(% NelseRValue"InvalidcQing",~qP{.append(g)# wrap up la gNmkstemp(*args, **kwold_openE O6try # =orarily " s1ing10os.AKUGp.-ifinall|then put it back, s # Silenc8PEP440Warny default, so that end users don't get hj y it # randomly just becaus\y7 pkg_resources. We want to u rule #=w%pearlierHsNrfilterwsDtake precedAover # one. -.<("ignore", category= , # from jaraco.functools 1.3call_aside(f, LVPfdff @_HXinitialize(g=globals()Q"Set up global re#source manager (deliberately not state-saved)" ,B= Re?M>!() Cg['_PD'] =0.update(N(name, getattr(9 , )Q'1fore in di(!!if7.startswith('_'$') @_call_aside def _initialize_master_working_set():"""Prepare th1. . set and mak ``require()``FAPI available. This function has explicit effects onpbglobal;of pkg_rs. It is intended to be invoked once at;a{@of tEmoduRInvoc by other packageskunsupportedAdonea atir own risk.H5cB = WqSet._buildN_declare_('object',{F=R)Z~( =(.ientry_points, 6add_activ_listener<subscrib@run_+pt'\ # backward compatibility,pmain = P2# Ae all distribus alreadyGsys.path  replace=FalseLAensu/atOd[DviRfutur# (e.g. by vIing `) will QGss well,1higzriority (RTrue)[GtuplU.V0S)SM{&alambdas:uuexistingxm. ie![]# match orderzX(map(8<4y, D@4s()locals()) im4 os Terrno Rsys -dirs_31(I!, 2_ok/2try84os.74except OSError c5^ or exc.A != v.EEXIST6oraise # r*onJ behavior until mode conr@s # Ks_ok  Vdisentangled. # See https://github.com/pypa/setuptools/pull/1083#issuecomment-315168663 needs_makedirk version_info.major == 2 o(3, 4) <=-1 < , 1) ) makedirs = _makedirs_31 if needs_mak else os. """Utilities for writing code that runs on Python 2 and 3""" # Copyright (c) 2010-2015 Benjamin Peterson # # Permission is hereby granted, free of charge, to any p@p obtaina copy #,this softwareassociated documentation files (the "S2!")gdeal # in  without restricF, includClimid?s # to use,, modify, merpublish, di]pbute, s0cen6and/or sel0cop)of, to$0mit@sonszIwhom, ifurnished$Qdo sov@ject`followPcondi0s: The aboveb noticz%peshall be: edharstantial poru$e .fHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THEM0IESOMERCHANTABILITY, # FITNX0FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALLm # AUTHOR COPYRIGHT HOLDERS BE LIABLE mNY CLAIM, DAMAGR OTHER #)@ WHEtAN ACTIONCONTRACT, TORT O=WISE, ARIS@FROMY OF%IN CONNEHu!OR0USE. DEALINGSUTHE #/. from __future__ im  absolute_"  functoolsIiteroperator!%sy,types __author__ = "B " __ver81.10.0" aUsefulKvery coarse 0 differe. PY2 = sys.#_info[0] == 2 PY334  :2] >= (3, 4) if PY3: o1ng_<1tr,uinteger2intUclass8AtextFEdbinary0bytfvpMAXSIZE+y`xsize 1basu"ngl (a long)x ( 0s.CBType*0uniB Astr !ifplatform.starts("java")1# J&p alwayss 32 bits.N& int((1 << 31) - 1/# It's possiblePhave @1of( != sizeof(Py_ssize_t). class X(object): !def __len__(self):#return 1 << 31:try,len(X())"except OverflowError3# 32-bit3pMAXSIZE = int((xW) - 1\9lp 1old~2 ye) if PY3: if new_mod is None +!i= name?Pself.==G ^Oattr_if old_% & ?els:k !,!W/O5mod-n9rV( cdef _resolve()module = _import"ul')Breturn gete!(m9 , P.) class _SixMetaPathIVer(object):1"""YA meta path Ser to  six.moves and its subz"s.JRThis x implements a PEP302 finder?loader. It should be compatiblwith Python 2.58 all existing versions of(3 mq_init__m,W_ ~=, =&Mx$SknownEbs = {}n3addqmod, *full\sqDfor 5 in st[O + "." +<@] = )geH,+OW j  ,N=o%ifw Y/__?try`.]xexcept KeyErrorIRaise f!(" does not eHule )3SH #O@case@a reG80sysQ_ules[EpassSC }Tif isinstance, MovedMWEmod.+J)_@er__5elf'mO :is_packag9j@Rtrue, if theodi S18We need t=`methodvget correct spec objects with Python 3.4 (see PEP451) 5""" )return hasattr(self.__get_module(fullname), "__path__") A@def +Acode;%, /:"B"""RfBNone:Required, if is_package is implemented # eventually raises ImportErrorsource =Ousame asA _iPer = _SixMetaPathgPer(__+__) class _MovedItems(_LazyMW"):0""" loading of m1 objectszP = []@mark5A _9_`ibutes,AAttr("cStringIO", io/),@`filter*itertools qbuiltin i$ L PfalseD Q H*\PinputV#__ __ Eraw_( N@tern@ OOsys"40map1 ~i!C`getcwdFou b): b@Arang x%  reX{ S]@lib"PY34 else "imF@OeducBfuncshlex_quot?Apipej>-8, " /ioqUserDic collectionP/5Lis; ;I?   !zi!vzip_longe  K *\((",configparsCP1PpyregPcopy_ (bdbm_gn0dbm0@dbm./MovedModule("_dummy_thread", " !), MovedModule("http_cookiejarD 0lib .B s3CM =/s";ml_entitie<AhtmlEydef.#EQparseUHTMLPQ.=Tlient :email_mime_multiparCn.MIMEM/./X 6non,6, "[?Non^ 5a ;texT%I @base@BI%I,HTTPServLs!D:CGIC B jSimpleEH acPickl pAqueu/Q #Crepr Mcsocket#A, "STU8B1RtkintT 'p_dialogD C.? Cfile'~, "FileG$K scrolled (Q ,(s(Q 0tix)T6 tk6t.6 constant`)TkzJ !dnv#Tk >8 colorchoo0tkCC"Z :c Fmmoncc (:c 'tk_, "tk*"fo5tkF p.MovedModule( "tkinter_messagebox", "tkMB&.&), MovedModule(MtksimpledialogQSD<@<.:eurllib_parse", __name__ + ".moves."".2S_errorS "SSM  Sa_robot"Lxmlrpc_client6lib .@QserveuXMLRPCSV.'), ] # Add windows specific mCs. if sys.platform == "win32":5_d_attributes += [L Qwinre_ p] for EM in Tk0set"!(_UaItems,4.s )zif isinstance(5,)P_importer._add_2"Vs." +fQ) del' .. =! R(2?") ?", ") class A_six"s_wb(_Lazy#1): !0""" loading of \d objects?sixY"" at A0("P%QResul1url9?_Split?'l3_qso ?lib{ -C_qsl1 =urldefrasurljoinlx0 sox$(unn z/un|&@quotu7D_plu{!un>k U 9e_plus", "urllib", "ur .parse"), MovedAttribute($fencode1 ; splitquery2 <6tag0 :Fuser1 ; uses_fragment5-Aonetloc?&oparams?&ptrelativA] for attr in _I_/ _mB_C!s:X0set(Module_six)s<,SR.name Q) del/ : .Ndw/ =  _importer._add_m 0(__p__ + ".(s.GK "-),  class error(_Lazy#1): f0""" loading of wd objects:sixNd""" S[g %@URLEFlib2 .M ;OHTTP<%ContentTooShortG <: " F   _MZWCrequest6P  8? = purlopenNinstall_AsC_buildA)@pathF2url .request"), MovedAttribute("url2pathname", 6lib .request"), M@getproxies4 > R]y2<OpenerDirector8CHTTPDefaultErrorHandleL'1RedH-CookieProcess$_Proxy)OBase@)]PasswordMgU'DCWith_Realm"AbstractBasicAuth-I2J2oDigest1J3K3[-SA)?Fil*?FTP)_CacheD,Unknown)8+urlretriev"urlcleanup  AURLoI3 = _FancyB*<y_bypasA] for attr in _urllib_ _m_!s:setattr(Module_six_moves_urllib_request, attr.name Q) del Module_six<. d_Bibutes = ` # _importer._add_me(l 0(__q__ + "..._"), "/9", G class sponse(_Lazy&1): ~0""" loading of ~d objects in six2_reQf""" B CA = [mMovedAttr~("addbase .d'<closehook7 AFinfo2 <6url5 ?Q] forK,:)0setek= % I #0)obotparser7T  PR5QFileP_r4.?), q; tBw#@z ( }L &3 r(types.GTypeCreate a [space that resembles the Python 3&j__path__t] # mark as package|`4get _,!")8_error8,8:porter._get_.module("moves.urllib_request") response = _importer._get_=/>obotparserA21") def __dir__(self):qturn ['d', 'error   `G'] 4addMQ_six__(__name__ + ".55"), \ l0ve(E"""Add an item to sixf1"""`setattr(_MovedItems, D. 1) d re(gRgOfromi6tryf>delvSexcept AttributeE> K1del s.Pct__[M]M!Q;KeyK[raisem("no suchX, %r" % ,)bif PY3_meth_func = "_ "__`e *`closur3"__ #"$od:odedefaults_ $cglobal# "Oelse!imx0im_"I'? A%$E" advance_iterato"Snext 8NamK7 23(it~!re 0it.G0() < = hpcallabl #N(objy@any(all__" in klasB forAtypeH.__mro__hqunboundStion(rcreate_<Pod = vs.MethodType,k0D 0od(^, clsn?Ivobject [".cG ,`, obj.1assy?ceBNone7c  ( ecX} k0.__,c_hGdoc(_function,  """Get the function out of a possibly unbound#""") get_method_== operator.attrgetter('%)6_self 2 !2a_closure7($ :/od7 ;ode4defaultso % <oglobal; $Nif PY3: def iterkeys(d, **kw)areturn"1(d.%")) >_value@'BOitemA&@Olist@&@@viewwjcaller(".0 21r") elsez%d.>(@?%>iP>%>_o,"_4 $65 #4_add_doc(qB, "RaQ over!diyary.") HJ %%L, a(key, Z) pairs``[a/s]c, >b(s}s.encode("latin-1'u2 unichr = chrimport struct`nt2byt!.S(">B").pack(8del73H2int?!0)5Pindex+ 0get+"4ter![!ioStringIO = ioTBytes _assertCountEqual = ""+ if sys.version_info[1] <= 1hPRaisesRegexQpS _assertRegex = "assertRegexpMatches" else: _(Qaises.=;1Y+&" \def b(s)jreturn s{# Workaround for standalone backslash +JuJ unicode(s.replace(r'\\', s\\'), "$_escape")RRhr = int2byte = chrzo2int(bord(bs[0])1Pindex6s(buf, i7Ruf[i]Aiter2 = functools.partial(imap, ord7mport StringIO = BytesIO =".+CountEqualQItems+R,p.(_add_doc(b, """ lual""") u IText (self, *args, **kw sgetattr+C,)(> lB /m Dn 5h'>bbif PY3exec_ = moves.builtins, "!"0rer (tp, value, tb=Nonei'"if@ is l7b = tp(3.__trace __Ajnot tbCdV.with46(tbU' 0_(_D_, _globs_c, _loc """Execute 6 in a namespace.""R@frammsys._get&(1EB!= !.f"alD"#ifj#_w .f G2delg6/el[ Gs<&s_:axec(""; b-'_40"""`  L@ if R version_info[:2] == (3, 2 pa_from( , _ 0'ifg18QZ>$: raise value from_ """) else: def raise_)($,0)'+' " print_ = getattr(moves.builtins, """, None) if A_ isY(*args, **kw z"""The new-styleJ function for Python 2.4 and 2.5."""Rfp = Y .pop("file", sys.stdout),Zif fpCureturn +write(data-if not isinstanc%, basestring15Hb = strSk# If the  has an encoding, e unicode with it.CGif (1fp,M)6 )p-,_24fp.FTgerrorsE":-2if "]YX+$0= "l&ct 0 = 'e(,f47fp.1Twant_xu= False,se}=sep0if )!is5(ifJ6sep 6Tru.elS?strPTypeE ("qmust beP or aFing"2;endw?end)?end=S#ifn  I invalid keyword arguments to'()Q a `arg inKs G?argM 1l= = K$Ubreak8if 9 newline =LG("\nOIspac" !+SKJ&" mi!= 6Ht/ndq=2 i,enumerate( !g6sepO6arg*end) if sys.version_info[:2] < (3, 3): _print = !_ 3def(*args, **kw 6:Rfp =  .get("file", sys.stdout)M,Flush/`pop("f", False+ xK1if : and fp is not Nonep1fp.) () _add_doc(reraise, """R  an exception.""") ifTversi<0=4(`wraps(ped, assigned=functools.WRAPPER_ASSIGNMENTS, updat5sUPDATESq.uWper(fFf = y,o6)(fx?0.__5ped__ = return f,Sr elss1 ith_metaclass( , *bases"""Create a  * with a 1# This requires6it of explanaP: theNpic idea?`to makfSdummyL` for one levelPw instantiX that replaces itselfOwgactualNo "):- __new__(cls, name, this_Cs, d2/T(.)s Ttype.[-, 'temporary_', (), {})N0( decoratorCc_ing a =$clorig_varWcls.__dict__.copy(@slot$01'__6__'+.IRif is1ce(BS, strA = [ ]mGA in ,'%2 !'!',(weakref__+]<B__, Dl=#python_2_unicode_compatible(k>1"""&A.Ldefines _B_p__str__Fhods under Po1 2.MU3 it doe(Rhing.\To support>a3 a single 22e, : a tAtextJQapplyo1fif PY20if '1in ;,9 ValueError("@python_2_unicode_compatible cannot be applied "  "to %s because it doesn't define __str__()." %L klass.__name__)-D_ = ] * = lambda self:%._ en('utf-8'rbreturna # Complete the moves imentation. # This Ma is at,end of tmodule to speed up mqloadingEy/into a package. __path_[] # required for PEP 302 and 14512=5\;1see&366 @ReservedAssign if globals().get("__spec__")(QNone:~B.sub_search_loc&Bs = r451 @Un%dVariable # Rec other six met thvorters, sinc"y yproblems.an # happen ifIAis r]d from sys.s3pthen reed. (Setuptools" #jsome reason.)*L1eta(%i, in enumerate(0)1g# Here's bl nastiness: An"instance"`ea mightQbe floating around$erefore, w1't sZ ()Pcheck\PR will haveMinserted an*with different c5if (type(imp)3 == "_SixMetaPathI#"BA.q<(2del-9[i]MQbreak+ # Finally, addv`L y hook. ".4d(_=) #!/usr/bin/env pytho0-*-Qing: A -*-0pyr (c) 2005-2010 ActiveState Software Inc*Co413 Eddy Petrișor """Utilities) determinoD-;ific dirs. See X2ail!us""" # Dev Notes: # - MSDN on wherp1tor data fil+# ~0supI.microsoft%default.aspx?scid=kb;en-us;310294#XSLTH3194121123120 B0120ac OS X:ideveloper"leg0ocuo#/MacOSX/Conceptual/BPFileSystem/index.htmla0XDGNc EUn*xjdards.freedesktop.org/basedir-spe)c/basedir-spec-latest.html __version_info__ = (1, 4, 0)'.'.join(map(str, =)) import sys os PY3 =.p[0] == 3 if PY3: unicode0!trsys.platform.startswith('java')7y(K`os_namK.3()[3][0](3if + _Windows'): # "V XP",7", etc.Hsystem = 'win32'/elc3Mac_Mac OS XPddarwinQ!sePLinuxPSunOS |FreeBSDH# Setting this to "l< 2" is not ideal, but only aor Mac# are actually checked for and the rest of module expectsF** style stringsOb' elsekJ def user_data_dir(app =None, appauthorroaming=False^r"""Return full pathDj\Pific sA dirkapplication. "G5 /q2If Ajust\directoryr&edCj1" (tused on)85the~0` or di!buLObody` Typic# K$itm0owncompany 0. Tfalls backc(. You mayOQpass +disable ithPan op3al pelementE@appeoc m#thright wa22useUbif youmultiplehRo*rt1be to run indeently. I!d,e twould tj be "." yOcped when|hpresen= " (boolean, defaultvP) canwset Truee_ Qv*at means thatW\saNnetwork setup1`profiles5jwill bQsync'login. Se!2+H0cus}cissues ;0ies7:  ~/Library/Application Support/ SUnix: ~/.local/share9$# or in $XDG_DATA_HOME, if defined_Win XP (not roaming)oC:\Documents and Settings\ lhlL{ /7 LUserr XXRgZ@For  , we follow the XDG specs4 .AThat means, byoault "6"71"""?if system == "win32":qif appa is None"=+.>tconst =n"CSIDL_APP"FLOCAEpath = os. P.norm (_get_win_folder(m%))8 KFalsh{Pjoin(,B ey:ePE)el'darwin'`expand('~/Library/7t'uX \ /C 5getenv('%', "h .svversion=@G+preturn . def site_data_dir(app=KPmultiJ=l)B"""ReAfullj1 to- d r dir for thisQ%. ""E! o/!Ifa, justx directoryK "ed:<j " (only used on Windows)85theB8or distribuw_ body TypicallyK$itmowning company 0. T1falls backa(. You maOQpass +disable ithPan op3al  element to append to the path. You might want(use this if youmultiple versionsKo*Pr appBpbe able run indeently. If used,e Gwould typically be ".".2@Onlyvlied when name is present2"@ath" an optional parameter oScI*nixwPwhichicates that` entire list of data dirs shbreturned. By defaulte first item from XDG_DATA_DIRS iG, or '/usr/local/share/',-ifW not set )Trectories are:'T Mac OS X: /Library/Appl"ion Support;@Unix7G GbWin XPIC:\Documents and Settings\All Users\PData\'qAuthor> 3_RVista^ (Fail! "C:\ProgramAT hidden *system*3Qy on F%.)V7V N a # Hb, but write1on N.@For ZOqs using$N4[0]|<WARNING: Doddows. Se'e-,ove for why|1"""2if  == "win32"C ifa7Nona3app=+X` = os. P.norm (_get_win_folder("CSIDL_COMMON_APPV&")\a is[ Fals+yPjoin(,B ey:ePE)ela'darwin'expanduser(' 'sV Z /C #{2 #,(,getenv(' <Asep.[K#',_'']7x3= [I.ax.rstrip(os.sep))Px in :`.split!]t$if  appname = os.path.join(appname, version) (list = [os.sep6C[x, :]) for x in /%] Fif multi:c3 = [sOelse;+5[0]ZRretur$ifD andPE  X def user_config_dirJQ=Nonecauthor_roaming=False)Rr"""RAfullMq to thel-specific uA dir{@thislication.d"A" isI! o/*2If Ajust3`systemn`ectoryK5ed.xjp" (onlyd on Windows)85the>~2appA or distributing body TypicallyK$itm0ownBcompany |0. T1falls backe(. You maOQpass +disable ithPan op$alopelementE`append |right wa2Ause bif you[$lehso*rj1be to run indeently. I!d,e Gtwould tj be "." Oapplied when|hpresen=" (boolean, defaultvP) canwset Truee_ QvFdatapat mean!atWsaNnetwork setup1`profiles5!r qjwill bQsync'login. Se!2@scuscissues ;1dirgies artMac OS X:qsame asC_ LUnix2=2~/./ #in $XDG_CONFIG_HOME, ifEined]_Win *^7@For , we follow@XDG \ }support$Th>, by deaf"1"""}3if Iin ["win32", "darwin"]* =T]X,/ +Jos.getenv('XDG_C ONFIG_HOME', os.path.expanduser("~/.config")) if appname:>% =HPjoin(,/C? and versionK3G+Gpreturn . def site_S_dir(Q=NonecauthorMPmultiLr=False)B"""RgAfulll to the  -shared data dir for thislication. %"A" isED! oO/K2If Ajust3`systemn`ectoryK 9ed.jp" (onlyd on Windows)85the>~2appA or distributing body TypicallyK$itm0ownBcompany |0. T1falls backa(. You maOQpass +disable ithPan op$allpelementE`append right wa22usebif youE$lehso*rj1be to run indeently. If,e Gtwould tj be "." Oapplied when|hpresen==ath?parameter SScJ*nix@hich eaentire listAs shb By defaulte first ifrom XDG_CjDIRS iI, '/etc/xdg/', ifE not setrgies arMac OS X: same as32@Unix&$6[i]each value inZR D%SWin * SVista*(Fail! "C:\ProgramData8 hidden **%yF".)Q@For  is us( 6[0]5if QWARNING: Do@. Se!e -,1oveP2whyJ1"""*2if  in ["win32", "darwin"]6m8* =1 $UaO7els#3 for $XDG_CONFIG_DIRS # only first, if multipath is False,= os.getenv('XDG_CONFIV', '/etc/xdg')8list = [os.G.expanduser(x.rstrip(os.sep)) for x in +Psplit!]Zif appname:if version1 Sc.join(,95(2sep64[x,]/%] [ \[D;els$! ='+"[0Rretur>p def i_cache_dirQ=Nonecauthor;opinion=True)Rr"""RdAfullq to thej-specific sA dir@this/lication.""wH! o/2If Ajust{`systemn`ectoryK 5ed.j1" (used on Windows)8&th~2appA` or dibuting body TypicallyK$itm0ownBcompany 0. T1falls backd(. You maO3pas+disable ithPan op$alpelementE`append }right wa2Ause bif youW$lehso*rj1be to run indeently. I!d,e Gtwould tj be "." Oapplied when|hpresen= " (boolean) canh*uA<)of "C"0(@baseyP dataDJ. Se`discusc belowGby gies ar=Mac OS X: ~/Library/s/@Unix+31~/.' (XDG defaultbWin XP7pC:\DocuUs and Set20s\<rv>\LocalA)` Data\A> \RVistat C:\Userd1AppLlFRSOb/`sugges7MSDN docs6athat lsa go inQ/`CSIDL_LOCAL_APPDATA`yis ident6)non-roamingN6app4(\  by `user_data_di>r` above). Apps typically put cache data somewhere *under* the given dir . Some examples:HL...\Mozilla\Firefox\Profiles\< pName>\Cs 9Acme\SuperApp A\1.0$OPINION: This function appends "NP" to `CSIDL_LOCAL_APPDATA` value.OFcan be disabled with?opinion=False` opm:1"""Bif system == "win32" ifauthor is None*3app=+AnameXpath = os. P.norm (_get_win_folder("5"))H[ |qis not 'Pjoin(,B ey:;els< PE3if )el'darwin'P expanduser('~/Library/`"s'SDJ N 5 getenv('XDG_CACHE_HOME',  .'c . and version=+"preturn .p def Q_log_dir(app:=?JJb=True)Rr"""RbAfullgh-specific log Pfor t:rapplica)""A! o/!Ifa, just5directoryK"ed;<jp" (onlyd on Windows)8&thB9 ortributing body ) TG$itm0ownBcompany .kalls backb(. You maAKBpassH+W7 ith#anY$alhpelementE [right wa22usebif youmultiplehso*rj0be  run indeeently. I!d,e GVwould\["." yO~!he|hpresen= " (boolean) uthe appending Gof &"Logs" to the base app data dir for Windows, and "log0 J<Ucache9Unix. Sescussion below. <Typical user <ectories are:(Mac OS X: ~/Library//-z)91~/.['/log # or under $XDG_CACHE_HOME if definedRbWin XPTC:\DocumentsSettings\<n0\LoApplicatPData\qAuthor> \tRVistas C:\Userc1AppKkEQR$Ononly sugges!inMSDN docs is that lsK3go /`CSIDL_LOCAL_APPDATA` y. (Note: I'm interested inHexamples of wlbsome wps`a logsZ".)=OPINION: This funcappends QvaluecF4i.H ca disabled withW`opinion=False` op:1"""Bif system == "darwin"path = os. a.join(8`expand*('*9'),20app)*el^win32X_ S_dir(B,aP, verV1 = n3if  ,Z7els ! =_b. if^P ?preturn  class irs(object)T"""Convenience wrgTdirs.ydef __init__(self U=Nonerroaming \` multi"g.> =p|! #X$ =v 3 = & =^@property2" $ , 2-=5 ,Bsitedir(self):  return site_data_dir(self.appname, author, 9version=5 , multipath!) N@propertydef user_config!):y&$#  , roaming F&$ n&Oachem %$kU/lo##A N) #---- internal support stuff _get_win_folder_from_registry(csidl_M("""This is a fallback technique at best. I'm not sure iqing the a` for tQguarantees us( correct answer*all CSIDL_*G!s. 1"""!im2regTshell4A = {."RAPPDATA": "AppData"1$wCOMMON_+Common 2XLOCAL1[Local0&}[h]ckey = .OpenKey(HKEY_CURRENT_USERr"Software\Microsoft\Windows\CurrentV\Explorer\S*! F sQ)udir, typeQueryValueEx(key, i=Odir uwith_pywin32t Acom.d  3con{" =b.SHGetPath(0, getattr(;}r), 0, 0# Try to makea unicode  because fQ does#;strings when sY! iCk6tryITdir =7C(dir# Downgrade shH  if have highbit chars. SeB$?@has_^_[v = Fals]c6dir8if ord(c) > 255 has_high_char = True Ubreakuif has_6:7:tryimport win32api1 di|.GetShortPathName(dir)5except IX^ErroruApass5-{Unicode.&)return dir def _get_win_folder_with_ctypes(csidl_name)y w$const = {"CSIDL_APPDATA": 26,gCOMMON$-35$ILOCAG8#"}[z]bbuf = .create_u_buffer(1024d'windll.shell32.SHGetF W(None, k", r0, buf)z# Downgrade to s` path  L0ve M@bit Rs. Se'# .M r = FalsUfor c inif ord(c) > 255 M &"Obuf2w$ifPkerne "W(buf.value~12,  ;?jnaQarrayufrom com.sun =jna.jna.platform)buf_size =4.WinDef.MAX_PATH * 2U.zeros('c'@KSINSTANCEH# getattr(t.ShlObj)!LFP_TYPE_CURRENT Na.toString2tos @)).r op("\0"R'diRR? =  I8KG )0if ,/al^ ^)}if system == "U"j \_ s + =r_with_pywin 32 except ImportError:6try from ctypes i2u windll3&_get_win_folder = b_with_H: V com.sun.jnaP | ; [1,_registry #---- self test code if __name__ == "__main__"~0app = "MyApp"appautho`"MyCompany" props = ("user_data_dir", "site//iconfig13Dache2t"loB)int("-- app dirs ( optional 'version')")c%= AppDirs(,A#, 3S="1.06@for 1 insE!pr%s: %s" % (), getattr(q,5*))-\n?out)c;k [ disabled ' o=False<6# module pyparsing.py # # Copyright (c) 2003-2016 Paul T. McGuire /`Permis, is hereby granted, free of charge, to any person obtainingx`a copy-this software and associated documenta^ files (th3 "S5!")k@deal/Dthe  prestricG, includ"ClimihBsAuse,,Hqify, mepublish,dibute, s0cen9`and/or-lE2ies, toFp`t2~Pwhom is furnishedQdo souRject I2following condi#s:The aboveRnoticqshall bE eds1coprstantial =ion.0HE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.JIN NO EVENT SHALLqaAUTHOR COPYRIGHT HOLDERS BE LIABLEn NYHCLAIM, DAMAGE9QOTHER*1WHE IN AN ACTION OF CONTRACT,H@TORT>WISE, ARISFROM, OUT5@N;"NEI@WITHESOFTWAREI@!US T DEALINGS IN0 -<. # __doc__ = \ """ pyparsing module - Classes and methods to define execute ;grammarscMThe UiN alternative approach to creat\tsimple ], vs. the traditional lex/yaccRA, or&use of regular expressions. With, you don't needlearn a new syntax forpPmatchf! -%m` provid` librarycu@that onstructLs directly in Python.|PHere l@ pro,e "Hello, World!" (or any gree|!ofbform C{", !"}), built up u>L{Word}, L{Literal},BL{And} elements (L{'+'} operator gives @ , strings are auto-convert& 0)::$ fromp importd, alpha*#a5 $C! =@(?) + "," +$!"h, =Tqprint ($r, "->",v.S ))Rwsoutputsvllowing a -> ['P', ',$ 4!']\f0 reE"enk0mar{quite readable, |(self-explan1y b names/'Pof '+!|'G5'^'s!L{F Results} object returned%kB >} can be accessed as sglist, a dic!1arywCan wad attribute "handles sompproblem!attypically vexowhen wriAtexters: - extra!iswhitespace (cUabove.will also 3!",@ , ld !", etc.) - quoted strings!embedded comments """ __version__ = "2.1.10"BTime07 Oct 2016 01:31 UTC+bauthor&Paul McGuire cimport from weakref  @as w# Ecopy 5sys Bwarn*%resre_consta!collectionFepprint9tracebackCypesdatetime`try: t_thread*0RLoTexcept I XError43;ing6+ ]+OrderedDict as _/ wXoIdI8L\9`p = None0 #~ sys.stderr.write( "test`pypars module,  %s, %s\n" % (, 0) )hQ__all [ 'And', 'CaselessKeyworqLiteral&harsNotIn`ombine fAEachmpty', 'FollowedByRForwa_GoToColumLPGroup"RLineE PStart# 'MatchFirs!No%QNotAntOneOrMorrOnlyOnc p!OrParseBaseE!io0Ele@CEnha@)PxpresY%WFatalS1 'uResults(gSyntax) (r})QSRecursiveGrammar> 'Regex'aSkipTo ;YH[1Sup(AToke Converter', 'WhitEW.T RDZero 'alphanum  18bianyCloseTagsanyOpenrcStyleC1colaSeparatedLionHTMLEnti 'countedArra"eR 'hexw 'htmlQLjavalec c !no@make1Tags6XML0tch0AtC60 'm@PreviousExp ndnested'nullDebugACR 'onepopAssocoperatorPrecedeEnQablesDpunclpythong', 'removeQuotes', 'replaceHTMLEntity', BWith&stOfLine@sglQAqdStringBrangEnd', 'sPStart'traceParseActionvunicodeLupcaseTokenwithAttributeVindentedBlockDoriginalTextForpungroup infixNotas'locatedExp*`QClass\CloseMatct!MaGpyparsing_comm ] system_version = tuple(sys._info)[:3] PY_3 = 5[0] == 3 if ": _MAX_INT1.maxsizeBbase`"trOshr = ch@_usts#%# build list of ale arg tins, that can be used as 1e asL<pArgBuil: = [sum, len, sorted, re  u,$ , set, any, all, min, maxXOelse2intzA = x 9Adef S(obj)F"""Drop-in ment for str.tries toU friendly. It first '_% GB. IfK`fails h3 a L EnPErrorkCen iM 1odej ^then < returns the0 object | e\sRu%rdefaulting | ... >.^6""" if isinstanc,M}|7tryu#qis work`'en2 hasame behaviourvNUit won't breakK` existb1Roexcept BElseI3e i]Tret =3geting(), 'xmlcharref*')! = Regex('&#\d+;*G.setl(lambda t: '\\u' + hex(int(t[0][2:-1]))[2:]}4.transformT(ret)K\aoleran}pPython 0ion x']7import __Rtin__ fn`pin "sumS0all".split( .append(getattr(,)v' scontinu { _generatorTypeype((y for y in range(1))) def _xml_escape(data): """E &, <, >, ", ', etc. in a string of 9b.""" =# ampersand must be replaced first(from_symbols = '&><"\'''to('&'+s+';' for s "amp gt lt quot apos".split(! -f@,to_5Azip(w&, h" =81@ return%class _Constants(objectW@pass'`alphase# =E.ascii_uppercase +2lowR num< = "0123456789" hex!= + "ABCDEFabcdef" }1 = 1s +- _bslash= chr(92) printable"".join(cZcR.' if c notwhitespace))ParseBaseException( 4@"""be# <all parsruntime (s # Performance tuning: we cruct a *lot*these, so keep this#0or as sm@fastpossible1^_init__( self, pstr, loc=0, msg=None, elem  3`.loc =2U if;@ is >5Qmsg =m6;"OelseH6msg+ GN~erElement = #0argN(>a@bmethod:M(cls, pe3Finternal factory Q to simplify creatAone type R another - avoids havB_ signaturbflicts among subeTT Qrcls(pe. peA.msg b6$_getattrtYanameY"""supported -ibutes by ,,ar- lineno -Qs the<0ber8C tex[- colCocolumnE F`contai qBif( !@== "G9no"-Cstr .&elVin ("col", _umn")_?col\ ( self.loc, self.pstr ) Velse:raise AttributeError(aname) +def __str__( self )E return "%s (at char %d), (line:%d, col:%d)" % \SzTQ.msg,^D.loc Sineno dcolumn?rep `_ustr(7markInput~ , erString = ">!<" """Extracts the exception GQ fromiZ! sIQ, and[s@Aloca?!of8Pwith a special symbol.A6""" }# ==;ine9!6- 1'!ifc"".join(w![:U&],S9h,;GF3:])@_ @str.Y#p(!@__di9": non".split() + dir(type!class ParseE('Ba- thrown when pH expressions don't match l;3supported aPs by 5 ar-Rno -  number PBtextf! - <>h ?pcontain<|2 Example:7tryWord(nums).setName("integer").Yc("ABC":} U as pF' print(p": {}".forma+H.col16sPExpec011wb@pass6UFatalz Quser-8ablinconsistent$en@ is found; stops all*immediately kSyntax `just like L{ *d}, butvkbrnally"anQ L{Stop} ('-' operator) indicate]a As to7  because an unback/kps e_ has beenJ +"#~1 Re *1#~ perimental class - parse actions can raise this excep to cause P#~ py=0ing re 8e input string:2 #~ - with a modified,, and/or3 start loca-#~ Set the values ofRE!inconstructorz Iin a0 u?Se new/.t>ras Nonels no changejybe madeC2"""R#~ def __init_( self,A, re7ZLoc )+P.newP fText =9^!#~U.I=V` clTRecursiveGrammarx( 6"""_thrown by L{rElement.validate} igZ could be improperly r`IList"rTrace =6bCstr_a Oreturn "r: %s" %` xeZ_ ResultsWithOffset(objectU _(d,p1,p2.tup = (;getitem_>i:A8[i]:0rep5{F[0]);3set<,s2 f[0],i) SBuredI,]provide multiple meanB`access$Zfd dataF- as a lH(C{len(r#)}@ -$index (C{&[1]}, etc.:attribute9#.} - see?3set4'yExample: integer = Word(nums@e_st(*.]("year") + '/' hr +k A_monthB*Wday")# equivalent form# *("s#dS 6$ %% =.oE("1999/12/31"ltest(s, fn=g~'print("%s -> %s" % (s, fn(eval(s)))) test("list(result)"?[0]'month'!N.day=6B in c#inutes'% =.dump()", strprints:: -> ['1999', '/ 12 F31']8d0[0]54 #,2'!?'316#FTrue?-'m%GFals& - day: 31r!- H: 12`year: 22""" def __new__(cls, tokk=None, name pasList=q, modal ' )if isinstance(KX, cls&dreturnnobj = object.&.__doinit = F^retobj # Perform% tuning: we construct a *lot* of these, so keep thisG0or as small and fastspossiblc__( selff,X=c }]4 ; = #0 = CPparenu"accumNames = {}FP2 = $g" =o "$if=1 is G = [ /P +[:X/elZ_generatorTypedEOelse [ (0dic$()*b!if]1nota z+"ot Jm[D]] = 0(%O,int+ = _ustr)`) # wiclways _aS, but use0A forzistencya (c, (type(), basestring, !))?-5*x,'',[]) if isinstance(toklist,basestring): *T = [ ]+if asListGNif iParseResultsself[name] = _6WithOffset.copy(),0)LOelsekx?[0]uV0.__0 = ?try/[0except (KeyError,Type QIndex n" def __getitem__( H, i Q  i, (int,slice)*areturnI3.__p'[i8ce not i:accumNamesJ edict[i][-1]Jp ![ v[0] for v3toka: ])<s<Wk, v,B=M ,g/v,,Xkg p.get(k,5()) + [v}DAub =*el'k,f[vLPsd G '_(v,0) Hsub, ub.__parent = wkref( ?del>iW mylen = lend #?delc# converWQt to  $ li, int L(O < 0A += _=z(_++1# get removed indicesF = (range(*i.-(y+))Y6.reverse(t# fixupr`token Yjionary ,occurrences6:. /s(DAj2 L for #k, (value, position) in enumerate(occurrences): '[k] = _ParseResultsWithOffsetnD - (zf > j))dKelsesdel self.__tokdict[i] 4def __contains__(+H, k return k K H4lenCC ): 72lenWSlist pbool__(Z6Q( not;__nonzero__;_EOiter reversed=i[::-1]dBkeysh Lif hasattr4, "7"}>J 1./(N*=. s)!EA8for<$Oitem_ 1(k,_[k]) d Xwif PY_3m " / A"""RPs an 'ator of all named r @(Python 3.x only)."""8Q3to"; qDp o"Akey-s tuplesy X84= _ %z2dcss";u _t s"l}aBuQas a l3in P2.x, 33.xbJv?,Z 9 (Fe( "":"Returns all named result key-values (as a list of tuples in Python 2.x, #n iterator3.x).""" rwT`(self.:items()) -def haskeys( &2 ):J"""SinceBs() S6s a , this method is helpfulbypassingR code that looks for the existenof any defin.s<sR bool__tokdict)t 2pop, *args, **kw 3`RemoveE at specified index (default=C{last}).HSupports both C{} and C{} semantic C{p)}. If GVed noPargument ortnteger , it will useocHnd pop tokens fromcparsed&a E[non-i (most likely a string)Jhe corresponding 3'E_1 A secondQH2Csed, just a.D'Example:=urBr_first(gn'\0 print(OneOrMore(Word(nums)).S\("0 123 321")) # -> ['0', '123V321']\ @addPxAction(y t vlabel = lalphasaatt = )("LABEL") +  ]/Jpatt6AAB W.dump  P# Use ()!a a! aB to C(notjis not#Ido@formt LL; ~<x <{ q}7s3P['AAB @1!- X: AAB ? & if4sg = [-1/0k,v5RN =if k == 'defaulkt': args = (z[0], v)%Oelse84raise TypeError("pop() got an unexpected keyword argument '%s'" % kiif (isinstanceint) or 1len/o) == 1,  in self)pindex =Js[0]tQret =7[( ?delreturn retTWdefaultvalue1hK+" Vdef get(,w#, 'VRX=None2"""9ORs named result matching the givenWPor ifre is noHAsuchE, @urns B(C{} C{}UL *is specified.Similar to C{dict.6)}. Example:teger = Word(numsfpdate_st#!in-("year") + '/' + _monthPday")Nz$= n .parseString("1999/12/31"bprint(?) # -> ':'l3hour", "notk$")D M<~ { ifV G[keyA-``qinsert(!, _sStr I5s new eleat locationG$list of d tokens 7.*OneOrMore()10 123 321['0', '123T321']%r# use a1 ac2to Afron #Lsb`_locn(,0,J0(0,zn@addPHA(H{0?0, 3 h.__tok kp# fixupDAicesF3 fionary72forYoccurren2s6u.items(D for k", (value, position) in enumerate(occurrences): [k] = _ParseResultsWithOffsetfD + (r > index)) bdef append( self, item 2""",Add single element to end of P list'$s.sGExample:print(OneOrMore(Word(nums)).pString("0 123 321")) # -> ['0', '123V321']s # use a V0 accompute the sum 'd integers, and add i#:endc[_sum(token.,map(int, )( 1addA(VC W, 444H /`.__tok? ^;ext^?seqa 0equ~?g6katt = hlalphask 7f6preversematched ssB mak|lindromee9#4_pa!>g~d([t[::-1] for tjL]Treturn ''.joinm t[patt.c hlskdj sdlkjf lksd'dsklfjkldsjdksl' xif isinstance(pIseq,}1 +=6seqYKelse,Xg Rclear7C%D all0s<rP name 1del'[:Rdict. __getattr__,q ;try_[sexcept KeyError90o"if'in I(!no.__accumN1 /e/Wg[-1][00GB[b([ v[0IvI6tokd6 ])\ return "" def __add__( self, other ):!%Qret =z.copy()"+=4 g:rethii "ifJ.__tokdictAoffs@len(*Glist*6add-ambda a: if a<0 else a+?citems j.2 = [(k, _ParseResultsWithOe(v[0],(v[1])) W for (k,v2 in1tv]!k, cqZz[k] = vEif isinstance9/.__parenOQwkref rw h +accumNames.update( 6.__g!rej r P,int) andr[ == 0[# useful merging many A0 ussum() builtinO  wthis may rai TypeError - so be itd! +! <Drepr= 6"(%s, %s)" % ( /j= ), m/stl '[' + ', '.join(_ustr(i) )i,q) !i)iF)Z)]'&asStringList, sep=''  ou[g !utW;sep out.append(sepK  r O!+=.)._ _l@ 1tem)ou!&asI "8Rps the p^" r_ as a nested 2of matchPtokens, all conver'Ato s$s.dExample:q0patOneOrMore(Word(alphas)0 = 5.-("sldkj ls "<# even thoughNaprints6P-likem, it is actually a pyving ParseResultGs print(type(result),  # -> ['sldkj', 'ls ]k # Use asList() to create an actual list5_# =.D + 6 W6"""preturn [res if isinstanc],9`) elseA forin self.__tok2] ddef asDict(#2 ): Rs the named h ults as a nested dictionary.iPExample:cinteger = Word(nums)"pdate_st#-("year") + '/' + _monthKday"X f4 = o.String('12/31/1999'G  $pr) P(['12/ 31 u], {'day': [(', 4)], ' @0 KK2)]}_ 9 6  ]%'>X'31'}B # even though a  supports-like access, sometime you just needahave a3  imMZ jsonk.dumpsPExcep: TypeError: ... is not JSON serializable_.#))V!{"*": "31", "0: "F12"}b |if PY_3tem_fn =W.item`1r5xtoItem(obju( Iobj, /3obj.haskeys(#'r +M!@[!v)d@v inT HD>obj{&1E((k,qr!k,tdd_fn())&YOcopy w 2 of a C{P}Fect. >ret = ParseRe sults( self.__toklist ) 2retgdict =*m.copy(/Wparen. UaccumNames.updateFname Xurn ret def asXML\, doctag=None, >dItemsOnly=False, indent="", formatted=True ):V6""" (Deprecated) Returns the parse reh as XML. Tags are cre4h tokens and @at have definedH&s. nl = "\n ou&[]2B0 = ((v[1],k)@(k,vL) ini0Pfor v]gextLevelI# =t + " "p# collapse @s ifing is not desiredh!if\MIGn" _`Tag = x  <+>Kelse-$if N 0.__(U;TagB2ame93 br .hiIITEM6t+= [ nla, "<",Tag, ">" ]XPi,res\`enumerYg if isinstance(res,PR2b> S%Bres.4F[i],/ 8z(=9L :1)N  z~#rividualePtherea> it?res=VH namedItems[[i] if not resTag: /$amedItemsOnly(,continueJOelse= = "ITEM"DxmlBodyText = _xml_escape(_ustr(res))7out += [ nl, nextLevelIndent, "<",n, ">",A > :""| El)("ssn2*|)("age"info = OneOrMore( jPresul\/E.parseString("22 111-22-3333 #221B_' P i`print('.), ':', 7[0]-s0age : 22Xssn : >&1B! ?`elf.__5 r\!F⪙ pa/ = paY"( ifF 8yIpar. @i>OOB(lenO == 1 and&4 #)-grV3.values()))[0][1]'h(0,-1)sJ1keyH return None' def dump(self, indent='', depth=0, full=True):486""" 6Diagnostic method for listing out the contents of a C{ParseResults}. [Accepts an optional C{} argument so tha[`is strkcan be embeddedin a nested displayother data.Example:integer = Word(nums)c"pdate_st#-("year") + '/' + _monthKday"X fr4 =o .pKS('12/31/1999'Gbprint(?.)"s`['12',U, '31 `]p- day:  L: 31F: 12 [=7= [iNL = '\n'2out.append(a+_ustr.asList()) !if  f .haskeys(items = sorted((hak), v)bk,v inG+(dA *% # if>!'NL$ "%s%s- %s: " % (Vq,(' '*I), k*Gif isinstance(v,,4Oif v#v/+1>OelseavM]repr(Helif any(, -,v+=ve6elf>"i,>enumerate(vE/  70"\n;R[%d]: .%sB(S)),i,Zo+1)),v A,v)!return "".join(out)ARpL, *args, **kw  qPretty-;!er!"d as as aW@, usW"C{n} moduleJdditional positional or keyword args as defined for the C{pprint.} method. (U{http://docs.python.org/3/library/4c.html# F}) dExample::~ident = Word(alphas, Znums)-4num+func = Forward(<0ter=p | K| Group('(' + ?[+ ')':B<<= <+6Optional(delimitedList(h+))CPresulL.parseString("fna a,b,(fnb c,d,200),100"D(width=40%saz['fna',I> ['= 'b( ['(', 'fnb', ['c d`200'],/]]0 '1]t6""" qself.as<@), *`, **kw C# add supportpickle protocol`def __getstate__(_)treturn ( .__toklist) $dict.copy()+ O0paris not None and ()K accumNames' uname ) )s, 1 = "'[0<#8par?inAe)c1c!R = {} .update(rwif par Q= wkref(parEOelse7 qQgetneus,  Zmodalj?dirc(dir(typeP)) + a.keys( collec s.MutableMapping.register(PR col (loc,strgRA"""RYQs curcolumn within a s, counting newline separators.The first Lumber 1.QNote:@defad]_qbehavio `to expqtabs in2Sinputq`before r%Oprocess. See L{I{`rEleme:,/}<!>}mgpinforma~ ons,s containC{}Quggesteds to maintain a consistent view of the parsed string, location, and line acolumnR@posi"s within=P.(1"""@ s =ig return 1 if 0} for mgainform~%on2sX@tainC{}s4suggested method@main0 v..Y0,loc) + 1[(m,/g \/^8ext?loch)E JclastCRO07nex'5}&C>= 0.<[o2+1:+];1 ]=_SpDebugAc=B( inK,r[print (("Match " + _ustr(expr@" at + "(%d,%d)" % (pa), col*5 ))J ucVnB endxpr, toks'ed!-><.asList(PExcep<=exc? raised:VcHnullbW*args`'Do-no@g' d! a suppressg0out dukH.@pass.# Only works on Python 3.x - nonl20xic8"2Kalls #~ 'deco$trim fun c&mXQarityhe target'H_?_#(EP, max$=3 #~LsingleArgBuiltins)3#~ ]lambda s,l,t:2(t)]#~ limit = 0afoundAu= Falsewrapper(*args):  #~ nonlocal limit,foundArity #~ while 1:k#~ tryret = func(*args[`::])C.w = True&return ret#~ except TypeError"ifp == maxF or ~7OraisZ += 19dcontin #~Bwrapper # this version is Python 2.x-3.x cross-compatible 'decorator to trim lt@calls to match the a1 of target' def _trim_ (B,3=2)!if in singleArgBuiltins#lambda s,l,t:9#(t*R= [0]+y = [False # traceback7data structure changedPy3.5 - normalize 8to plain tuplesYif system_u[:2] >= (3,5# ext_stack((=0%)# special handling for3.5.0 - K` deep  S< by<AoffsA=-3 ,0) else -2frame_summary =E.c-m+B-1)[P)[(].filename, wlineno)EJbtb(tb,KJs 9[<Gs[-1(*u U1/tb."tb+# syntheswhat would be edA) 1 atn4to Tuser's parse ac8'q', so the don't incurppenaltyW<3tim[LINE_DIFF = 6$# IF ANY CODE CHANGES, EVEN JUST COMMENTS OR BLANK FS, BETWEEN THE NEXTE AND CALL TO FUNC INSIDE WRAPPER,2MkBE MODIFIED!!!!~_" = "&2)A0pa_L/_E = (BA[0],!@[1]+)| Ljgd?[0]gmArity[0] = Tkrue return retexcept TypeError:F# re-raise's if they did not come from our arity testingSif foundA'?[0]vzu>Oelse2?tryPtb = sys.exc_info()[-1]b-!ifextract_tb(tb, limit=2< [:2] == pa_call_line_synth[ofinall del tb "if[0] <= maxargs*N+= 1LocontinR%# copy func name to wrapper for sensible debug outpu4_4= "" 0getattr(A, '_HR__', : 8class__').D)B E'7ionJuqU6M! =.3+ PrElement(object)wa"""Abs base level 52r e4 H3.""?DEFAULT_WHITE_CHARS = " \n\t\r%verbose_stackae = FalseD@staticmethoddef setDefaultWhitespaceChars( c DrOverridesJ" dF% wGA2Example:#=Q are , and newA OneOrMore(Word(alphas)).]String("abcl\nghi jkl") # -> ['abc', 'def0ghiKjkl'` v#!ng1just treat as significan1 ).S" \t"88  "a inLiteralsUs8clsW x2Setqbe usedinclusion of s# lWs into aJ. |L}w3is Hinteger = lKnums0dat#-("year") + '/' +E("month") + '/' + integer("day") F  date_str.parseString("1999/12/31=p# -> ['P', '/ 12 @31']W Y# change to Suppress"Pr rElement.inlineLiteralsUs8)9& =year") +& +_month@d6""" "_luClass = clsM@def __init__( self, savelist=False ):^!Action = *(>#Efail"FNoneC!#~g.name = "" # don't define(, let subces try/except upcall`strRepr = }resultsN!AsList = bkipWhitespac7Truiw @Charu DEFAULT_WHITE_CHARSacopyDefaulthHhmayReturnEmpty = # used when checking for left-recursionxpkeepTabG ignoreExpTdebug ?`streamd"mayIndexErro to optimize Thandl%3hatQadvance  i` Perrms"MbmodalR4; = cmark rQs as 4 (report only last) or cumulative (@L all@CA(, ) #custom ,! ar32Pre avoid redundant .se1pre < Du%Trb^ N pMake a + of this C{o}. Useful&different Pthe s6pattern, u y2ies{e originalReB Example:'Z = Word(nums).set(lambda toks:P( G[0])LK.(o().addQMP*1024O("K"aMa n(lambda toks: toks[0]*1024) + Suppress("M")   print(OneOrMore(integerK | M ).parseString("5K 100 640K 256M")kY:s::o`[5120,7, 655360, 268435456],Equivalent form of C{expr.copy()} is just<()}k=p().addPAction(lambdaCI6"""`cpy = g self 2cpy:w! ="'[:/ignoreExprs/ /"ifODefaultWhiteChars[w1 =  rElement.DEFAULT_WHITE_CHARSreturn cpy  de{atName(, name )v *bDefine%for this ession, makes debugging and excep messages clearer. |ExampleWord(numsABC") # -> Ej#: Expected W:(0123...) (at char 0), (line:1, col:1n"se!""7} o.=t%errmsg = "1" +6/if hasattr(:%,"" ..aoUP Q|ResultsX, listAllMatches=FalsnreferencYmC tokens as a nesVibuteof the r1ed " rRNOTE:,W**Doriginal C{}} object;vis so that0cliRcan dNa basic ea, suchnKF,R e it in multiple places with dif/t;$s.@You also set +1 usZhe abbreviaWvsyntax, (""n*H.set +&- Gsee L{I{__call__}< )>}date_str =  xPyear"Y7'/'{ +k A_monthB*1daya  # equivalent form: date_str = integer("year") + '/' +_monthVday")X6""" newself = g.copy(,if name.endswith("*")!! =(V[:-1]]listAllMatches=True!~.resultsNameJ$bmodalR)%:ot \3sreturn ^" def setBreak( ,b pFlag = +"""Method to invoke the Python pdb debugger when this elem"ist aboutIbe parsed. Set C{}enable, False toM0dis. 5if U _|L*D er(instring, loc, doAction, callPrePDL`import4 hpdb.set_trace{/(   K._originalT8 = c .." =_&er#Kelsekif hasattrk=/,"{ R s/1 (, *fns, **kwargs  TDefine a0persuccessfully m2ingdBi:Vqfn is aR" mw 0-3 argu]sed as C{fn(s,vtoks)}, -'p or jus`fn()},rq- s =2 5 bed (see note belowv-7D@loca1 ofT+2subW0 - A = a 4e kebpackag aa C{L{U(}} objectYI|1funs in fns modify"to\they can T@themtWvalue from fn, andKV6ied\ will replacW`Otherwise, fn doesd1 neAany }.> Opial keyword=-m DuTry = (default=C{|}) indicate ifshould be run dF lookaheads`altern>testing No&te: the default parsing behavior is to expand tabs in2input string before startH\Tprocess. See L{I{!eSC'}< >} for mKinformationg%ons containuC{}s, suggested method1mai0& aVconsistent view ofd,A locgAlinepWcolum@posics with? U. Example::einteger = Word(nums)"pdate_st#-+ '/' + / B.("1999/12/31") # -> [' ',_U, '12 L31']WQ# use@e ac\pconvert bints aje time.setParseAR(lambda toks:( O[0])&># note thatifields are now s,'>shgf#12 631]O6""" BselfT = list(map(_trim_arity,Hfns)>`callDuTry = kwargs.get("", False_preturn Hxdef add , *fns, **a' ) =Add;expression's`%s.l '*}</>}e`copy}< 5 +/T {? or4ACond(f  a boolean predicate fun[ g  signatures. Unlike C{H&, g>s passedUC{addB} ne0sucP/failic9. Opal keyword arguments - message =?u customPto be7dx0raiAexcef - fatal = if True, will 5 ~FatalException to stop parsing immediately; otherwise will ra ParseException  Example::% integer = Word(nums).setR AcO(lambda toks: int( Z[0]))Lyear_int =&Wo.copy('.addCondiea >= 2000, message="Only support qs" and later"npdate_st/t+ '/' + * PresulL. eString("1999/12/31") # -> /:  (at char 0), (line:1, col:16"""msg = kwargs.get("! ", "failed user-defined chexc_type = UFatal9 ifbf", False) else72for fn in fnsrdef pa(s,l,t) f not bool(_trim_arity(fn)56: -7msgD%Bself.append(pa)%`callDuoTry = )or# 2+areturnIdrsetFail(,?A"""D! a%pperform+s at this expression.0 nHo` is a able funahGakes the argumentsJ@C{fni0oc,m,err)} where0- sD40 be)edP - loc =aL match waqtemptedN! =oJt7r1eVh throw]G Th1s no value. It may:_ C{L{h)}}Pif itpdesired.IG = f]|_skipIgnors~1ins, QsFound = TrueQwhilea!  :F;5e4i\eExprA,;try^1"loc,dumm1e._+( 7 # pass return loc def preParse( self, instring,)2 ):*.!if#.ignoreExprs"Rloc =%`_skipI*lables(X7Y3Whitespace\$wt[w#VCharsGlen = len()&Qwhile<22and ing[loc] in wteH+= 1OretuYVOImplZ, doActions=TruejQD, []k?ost, tokenlistPR#~ @profile%c _poNoCach s, callPIdebugging = .@ ) #z $ )k1if ':"orXBfail8 #~ print ("Match",0"at ",loc,"(%d,%d)" % ( lineno(,Z, col+ )B@if (\Is[0]s) ,1)ifV )Ml <0pre1N self.parseImpl( instring, preloc, doActions ) except IndexError:$3raise ParseE38ionmDlen({), self.errmsg |Oelsektokens =EpsI B1ost (6) <DretT6Results( .".rName, asList=QsaveAr, modal K 'iff and ("or#`callDuKTry)=if debugging?tryfor fn ineo15 I = fvStart, IwE#ifW is not Non,Y=W3I% is&Rance(.(,(f,list)),z%gr  ~'Bao as er #~ print " dDQuser D! au0:",MAif (uv\s[2] 1W-tF )%,!BF  1L c=("Matched",e,"->",n.+()1X. /1]* self, retTokens ) return loc, retTokens!def tryParse( self, instring,46 ):K7try`]92._pF @, doActions=False )[0]Sqexcept aFatalEI 3(.popitem(& 0&N(GNgY88r   Kkey_fifo = colle.deque([]V :  return cache.get(key, not_in_k) def set(self, 4~value):,;J[key] = *(qif len(/) > sizeSW@.popP_fifo left(), None)h2key/`append?Qclear .(q &M = types.MethodType(get, !`O.set8s8 :t# argument2 for optimizing repeated calls when backtrack!through recursive expressionsdrpackrat} = {} # this ist later by enabledP15();'here so that resetC() doesn't failp_lock = RLock(l _stats = [0, 0]mU gets !ly`ed dur with the same_2s -s# we ca)s&and save ourselves# trouble of re-parsxfcontainedyj_+e,n`, inst, loc, doActa=True,PreParse %HIT, MISS = 0, 1jlookup = Y g@WuA8w@rEle. ;W? = 7e" =('"ifd.A 1`[5H] +=4:?tryT"No  Tbexcept4QBaseEion as p#4p a copy~LPion, 3out0ace ~~So~ , pe.__class__(*pe.args)?^raiseZ?elsq(ZB[0],@[1]./()vY8 }y?HITPif isBance%,  raise value return (B[0],)[1].copy()) 6_parse = tNoCache@staticmethod1def reset)2():PKrElement.packrat_cQ.clear()-_vs[:] = [0] * len(^1{Enabled = Fals'e,P(_size_limit=1282"""]3s " " Jing, which adds memoizing to the%v logic. Repeated$e attempts at:same strMlocation (lyhappensO!often in many complex grammars) can immediately 4!a d2,Sinstead op-executq/validacode. Mis done ofS@bothk idV ulnZPexceps, DParameters- - (default=C{128}) - if `ntegerue is provideQQwill  iz  x;YNM`assed,&n 2 s `be unboundedI0F2- Pbe effectiv1dis  C 6 This speedup may break exis0pro;s that usAe ac Qhave side-s. For tireason, /AJ whe)you first import py8Q. ToAvateOZfeature, your must call8@clas: C{u %j)}. If8,&s C{psyco}"`ile asA go" )C{q} before[c.full(Xdo not ds*isbPythondScrashDbest,c 8()}1 Safter ' 0Exa:# H 7_ 86""" !if ;_2d, \ = Tr"if}0is  \ `;5 = ment._UnboundedCache() Zelse:ParserElement.packrat_cB: = R_Fifo]!_size_limitm 8peOP" Adef String( self, ins,All=False )2"""EExecute the4 expression withbgiven \.=qThis is#main interface toclient code, onhe completeJuhas been built.If you want^pgrammarm`requira0entSinput' brsuccessfully d,Un set C{^@All}^`True (c0valto endingB9BC{L{End()}})TNote:i(} implicitly calls C{expandtabs()} on ,sin ordeport proper column numbers in actions-Ifb contains F andsJusesX that use C{loc} arguFZPindex80Wlb beingS!d,can ensure`have a@sistgview oUy! -jgWithTabsmTyour lbefore0g (see L{IGR}q- definr0 usj C{(s,loc,toks)} signature, referex6Ul'ss-0lic) inr /J  0Exa%: Word('a').|0('abaaa') # -> [&']SC@;OPExcep+: Expectedi6exte ^ Qresettaif not.streamlinedA##~AaveAsList = Pfor eKignoreExprsjeg@keep# ;% =.*%)tr0  tokens =_(LH, 0 2C i;All4locLpreParse( instring, loc )  se = Empty() + StringEnd(,._parse( ins* Xexcept P'QBaseEion as exc:"if+ rElement.verbose_stacktrace2ZraiseI?els*# catch and re-90ept from here, clears out pying internal  xVreturn tokens ,def scanxw( self,^@maxM es=_MAX_INT, overlap=False )!2"""XScan the input  for expressm^. Each d will hj, rt\aP,h5end. May be called with o~&al&C{`} argu, to clip$nyafter 'n'es are found. IfS(} is specified,nDpT"esbe reported.NNote that@V? relative be~leSee L{I{'}< !>}0morAformu@ on &6ing[kth embedded tabsExample:CPsourc"sldjf123lsdjjkf345sldkjf879lkjsfd987s=bprint(C E|:`start,=in Word(alphas).E eA' '*I + '^'*(end-)z47[0].DsP 2^ E \-?^^^>D& & R? U/)^ aif not.streamlinedTCignoreExprsCe@|keepTab= = _ustr().expandZ len = len/v6= 00pre eF51preH$W!.KresetCache()3 matches = 0Ftry:* while loc <= instrlen and Ab< maxMN =AS0preX= preparseFn(cAing,t)6nextLoc,token?^, callPrePa=False Vqexcept &E ?ion~^loc+1Oelse;3if >'f_?+= d"byield ,IDloc,d3if overlap)fO;* 3,=/mRJ IE F B;EBase{ as exc"if rElement.verbose_stacktracZraise0# c1re-9eption from here, clears out py ing internal  xV" 0def,nsformString( self,' ) 2"""9N`Extensto C{L{scanE}}, to modifytext with$ieH that may^be returned a @e ac. To use C{tra}, define a grammarW[zattach Q#itvies thef list.LPInvok ()} on a target s_P willX n /B for 6es,Vpreplace,"!d A0pats accord}!to'logic in .S7rkAsultWY#ed[Example:) wd = Word(alphasawd.setAp(lambda[!s:[0].title()=}jprint(wd. r("now iw$ of our discontenw de glorious summer by thin3hyork."PtsNow Is The Winter Of Our Discontent Made Glorious Summer By Thin Of York. 6""" out = []lastE = 00# force preservation of s, to minimize unwanted transforma/string, and to_Rkeep P locs aight betweenNSEDBscanLPself.OTabs = TrueFtry:for t,s,e in =VC( in)7;out.append)[>Z:s] )h1Oif tH isnance(t,ParseResults|4+= t.asList(v'Yelif aOlistYP/set$7 =  6 ,O]E@= [o oGif oSreturn "".join(map(_ustr,_flatten(out))_qexcept QBaseEkas exc"if+ rElement.verbose_stacktrac(Krais/elRq# catch1re-9!epUfrom here, clears pyparsing internal Ecx&V" def search_(,`, maxMes=_MAX_INT O dAnother extensLvto C{L{k}}, simplifythe access]tokens foundz #`given @e exm. May be called with oA&alK&C{`} arguCclipafter 'n' m|bes aregZExample:<# a capitaliz0ord2rtsan uppercase letter, followed by zero or more +s*Pcap_wb= Word(alphas.aC(), F(= Kdprint(Q.* "Mthan Iron,HLead Gold I need Electricity"}ks: ['f@', 'd\T'I'  %sA([ t] 8 ) L4_stacktrace:; ZraiseZelse:5# catch and re-90 exception from here, clears out pyparsing internal stack traceeV" def split(self, instring, max=_MAX_INTcludeSeparators=False)2"""YAGene) method tom2 a g! uthe given express as'l.WMay be called with o%Tal C{} argument,x`limit inumber o&s;Z|#O+inX (default=C{ a}), ifes6ing^mtext shouldcBd in< resultsJExample::fpunc = oneOf(list(".,;:/-!?")),Brint%7.("This, this? sentence, is badly 1tuated!")YpU's: ['VA', 'Y  _b&'] iVs = 0!Jlastfor t,s,eia.scanS(M4es=L@yiel[k':s$3if 0 'K;t[0?T7 = <*u]s__add__hother 3IAa_sof + op - returns C{L{And}}. AddsTa ParserEleJ|convertsm*L{Literal}s by 8 O(@greeWord(alphas) + "," + !=hello = "H ,0,ld%! (,, "->", v.de(P ia -> [',PWorld !Bsaance( b, base "* =2._l{SClassM if not iq  twarnings. P("CanGcombine emrtype %s T@" % (*),rSyntaxWo,wlevel=2*G Non>pAnd( [ ,R ]t?__rGplementation of + operator when leftnd is not a C{L{ParserElement}} 6""" if isinstance( other, basestring ):-A"9 = _._literalS5SClassM& )@!ifq N twarnings. P("Cancombine etype %s with@" % (&),rSyntaxWo, stacklevel=2.return NoneKc + self def __sub__(,k^ 2ImpPation-Rtor, isRAnd}}error stopu VBaAnd( [, And._EcStop() ] r     - 4mul+*allows useC{expr * 3} in plact !!+ (&}. Expressions may also me multiplied by a 2-integerStuple, similar to C{{min,max}}B rs@regu'eq@. TDsTinclude C{e0} aE"- @*(n,#W)} or )}equivalentd *n + L{ZeroOrMore}()42P(read"at least n =s(}".,,n (0 (read as "0 to n instances of C{expr}") -p*(None,)} is equivalentJC{L{ZeroOrMore}(I/)}H1E  F/ +Z -1P}Z) if minElements:  !_ == 1&5ret = self + makeOptionalList(optf)fOelseW PAnd([\']*)jfD#f QNBreturn ret def __rmul__(o, other)`62.__+% F*orD E2"""r2ImpDa of | operator -urns C{L{MatchFirst}}A Nif isinstance(, basestring = Parseri._literalS5SClassM oif notq N twarnings. P("CanGcombine e type %s with@" % (&),rSyntaxWo, stacklevel=2.FNoneKw1( [ ]0=4when left Qnd isla  _ [o! | x)^/Or[/Or f __rxor__(self, other ): 6""" Implementation of ^ operator when leftnd is not a C{L{ParserE@&}}U bif isinstance(, basestring)= _._literalS5SClassM& )z!ifq N twarnings. P("Cancombine etype %s with@" % (&),rSyntaxWo, stacklevel=2.return NoneKc ^ self def __and__( &"- ksOEach[q1( []r5& invert__(  ~~oNotAny &w Ecall~Pname=|Shortcut forgsetResultsName}},g C{listAllMatches=False}. , PIf C{{}RgivenEpa trailqC{'*'} character, t g} will bpassed a9Tru? omitted, same>)pL{copy}>0Exa:#se are equivalent7 userdata = Word(alphas).setResultsName("name") + W&nums+"-"(socsecno") userdata =BhY&("JG& W6""" 0if is not None:Breturn self:?els= copy() _def suppress(^' )z S(8es the output of this C{ParserElement}; useful to keep punctuation fromcluttering up #eda.( ' leaveWhitespace#cDisablPskippEof wC before match characters in 's defined paPn. T?rmally only>d intern&byWv`pypars module, but may be neede?W some-sensitive grammarsak6kipB = False,z6set6CChar] , -sdsOverridwdefault@ .|g = Tru$, =R!%D}L,eWithTabbehavior:expand C{}ssm in stK@Mustdcalled9 C{;!eS.Q} whe E contains e&at M  PSignor, otherRDb1 exo toEd (e.g., com s)_Ple doG Ding;\Frepeatedly, multiple^2 orQi'Example:, = OneOrM,.('ablaj /**/ lskjd') # -> [#&']J .e(cStyleCL72, ' Gif isinstance(other, basestring): other = Suppress(6) 'if isinstance( !,1 R"if# not in self.ignoreExprs #u.append$Kelse?;.copy() ) )Rreturdef setDebugActions(r, start, successPexcep. 6"""sEnable display of dkging messages whi$opattern matching.L Y LWs = ( or _defaultS,Tg  IK )EDOv = True Pflag=:S`Set C{uA} toep, False0dis.Example: wd = Word(alphas).setName("Wword"4KQinteg98num7?num5term = wd | AoV !# I'onjfor wd( wd(dSOneOrMore(~).parseS("abc 123 xyz 890clprints5M:  at loc 0(1,1,+'ed--> ['abc']g*(U[3(1,4U raised:Expectg (at char 4), (line:1, col:5Ny_7(1,8+ g?xyz 11$2W,12+13P 15}6-}5}PThe output shown is that produced by the 9" a - customWcan bspecified us+L{b}. Priorfmpting"toC{wd} exAion,Fge C{"Match  at loc (,)"} .is shown. Then if the parse succeeds, a C{"Matched"} message =p, or an%Exception rais.l 7. Also notevuse of L{setName} to assign a human-readable vession,n which makes debugging and es easierPpunderst(- for in1ce,vdefaultgqcreated0C{Word} without callC is:W:(ABCD...)"}.a6""" if flag:self.setD AcCs( _HStar,'ss7& )xOelsek = False/preturn " def __str__(' )Q1.d 6?rep7 `_ustr(n)9`stream r.."wd = Tru!Repr = NonrcheckRecurv,`ElementListHpassCvalidate=Trace=[]= .C}p define"pr&sH structure, infinite r"veFi[ ER7@on( [5Filfile_or_AAll=DSExecu<Wp!on`given \dAIf a pecified (0ead$ object)gaentireFBopened, ,rclosed befor^7ing 7try_contents =i3.j( AttributeErrorU (_ "r") as f4 ~r.bStringzPEBase;exc1if +r].verbose_stackt2 20# c1re-9Pqfrom heM`lears  pyinternal  xeV8a__eq__g,other- if isinstan ce(other, ParserElement): return self is 3 or vars(B) ==)?0eli4finstanobasestringl.matches U/seYuper(,!==" def __ne__,Anot "% CChashE?1(idB*)):3req9~y >.]eq, testS0, p All=True2"""?Method for quickCing of aDPr aga! a C. Go:vsimple Vinline microsO sub expressions while buildqup largerv.O' \Parameters=-Q - toGthis}!a =g-{All - (default=C{B}) - flag\@passAC{L{hy}} when runn` 0Exa6:! = Word(nums1aassert&YW"100"( ;tryb+.p(_ustr()=(7All_YbexceptQBaseE;ion=VFalse>WrrunTests}P, com='#', fullDump, printResultsqfailureX=Execute thev on a serie=ps, showBeach$,N2d rHwherjQed. Qand easy way toS ruAlist|l[!es - a PPepara4estW,qa multi)'" -Yq;l k* 1'#'qindicattmbeddedjAs inbt!; "@None'tdisableB` filte7>- Edump3as list followed by results names in nested outline; if False, only dump3Glist/- printRa- (default=C{True})!`s testqput to stdouJfailureTests J}) indicatqf theseWs are expec0to K parsing Returns: a (success,) tuple, where tthat allt!Feded_1(or{ed if C{P} is `), andz contain a _@ of s Veach bF#'sH Example::number_expr = py_common.x.copy()1<>2 = &EA.runJ('''k3# unsign nnteger$>100# negative i9-:float with scientific notationl~6.02e23#|M^1e-12KJ''')02("S~")a[0] else "Failed!"3stray charactZ0mis@ leading digit before './-.too many73.14.159A''',RF=B )R6s( \[100]2 [H[?+23]b[ Z  /#  >100^CtFAIL: E0end0text (at` 3), (L:1, col:4T/#  S{real<k8 | '*| >}01 # too manyw '.' 3.14.159!^*FAIL: Expected end of text (at char 4), (line:1, col:5) GxSuccessEach test string must be on a single V. If you want to5a7that spans multiple|@s, create a;like this::expr.runTest(r"%3 is90\\n's y36s")~ @(Nott!atyT4rawliteral, `includ4`e lead"G'r'._6"""bif isinstance(Xrs, base&):+! = list(map(str.+!p,%1s.r().splitI7()) rcommentt #B = L(UallResults = []+ sYg = Trufor t in 3if Onot None and.matches(t, False) ors*7tYZZs.append(t hcontin?if U10out&'\n'.joinPWs), t<]1 ?try[t.replace(re,r = self.parseS?DAll= A4out/L.dump(full=HDump{ EpfailuresE4except PQBaseEivOs pe fatal = "(FATAL)" 2pe,OF)Px) else 0if Kq#|(pe.loc, t 1' '*(col5t)-1) + '^' + \Q"H0" +?(pe$= /G = p as exc -EXCEPTION: ?exc> []K<2fooWC&#');F: Expected "]%For case-insensitiveuse L{Caseless}#Bukeyword9 (force  break before and after thiz"),uKTG} or}~Belf, kb ( =M"Len = len(v7tryD<QfirstZ0Chay>'[0:e  N0war  s. c("nullp passed ; b!()Cead"}rSyntaxWg, stacklevel=2:!__Q__ = j 5'"%s"' % _ustr(;T + self.name #  self.mayReturnEmpty = False %IndexError$&'# Performance tuning: this routine gets called a *lot*<"if+"is a single character match string and the first&4es,T short-circuit as quickly possible,NQavoidastartswithJ~ @profildef parseImpl( AB, in , loc, doActions=True ):LtDif (.[loc] ==E.M@Char6:(k.Len==1 ory.(i,loc))Jr+T,c|praise PPExcep(GberrmsgE) _L = Literal @rElement._lSXClass-1 cKeyword(TokenF2""" to exactly*a specified6aYkM, that is, it must bimmediately followed by a non-@t. Compare 0S C{L{$}}-("if")} will@leadzC{'if'} in AndOnlyIf'}. MM@not;Z%on _ p x=1'},Eo(y==2)'}k Acqs two oPal couctor argus@addit+ Pident2s} 6 ofXswould be valid :r* defaultL to all alphanumerics + "_"X3 "$CRcaseless}4 owse-insensitiveDing,d!C{'" ;Example:5 1").A#(" # -> ['"']N?Sing")B" D@For suse L{CmnDEFAULT_KEYWORD_CHARS =d@s+"_Ws&__init__%X, a=None,=V csuper(,l%).])q('ifWZ$$ =.Xry" = "Len = len(;try^  g'[0 e  N0war} s. c("null passed to Keyword; use Empty() instead",  SyntaxWarning, stacklevel=2):self.name = '"%s"' % [match)errmsg = "Expected " +0E /mayReturn = False%IndexError$caseless = F%if:11 = String.upper(6identCharo -_!v = set(2) def parseImpl(/,, loc, doActions=True )!if3.Pf ( (O[OQ:loc+TLen ] =%lfO#R) andT(loc >= lenc*)-[%or[yxbnot in%y [== 0 _/-1S>r ,OelsehfEloc]J`firstM07(48==1.startswith(_,loc)/ pJ/praise P<PExcep"(:Y xAcopyTcuKb,E!).-&c.3 = -.DEFAULT_KEYWORD_CHARS<jc@staticmethodsetDefaultX=As( c{"""Overrides the d836""" ]Qosclass CkLiteral([Token toP a specified s]`, igno of letters.QNote:| ed results will always be5F RgivenG=t1NOTS-input text.Example:OneOrMore("CMD")).:("cmd CMD Cmd10") # -> ['CMD', ]v (Contrast " e for L{CaselessKeyword}.) """ def __init__( self, matchString ):(5super(CaselessLiteral,4&).D>0.up2#) vE# Preserve the definilO.oelf.return= )name = "'%s'" % > 0`errmsg2Expected " +7L" 1!parseImpl"1ins, loc, doActions=True44if -[-P:loc+3.(ULen ]'"==y8 C ?,3(5`aise PPExcep(L)dclass Keyword(F( version of L{. }.QExample:OneOrMoreX6("CMD")).}("cmd CMD Cmd10") # -> ['CMD', ] (Contrast with e for L{C , identChars=Non 11 O3, cVF/%( R) and`(loc >= len_!)-_4&or  bnot ina)Ztwr-PloseMm(TokenpA variafc on L{$r} whichPes "cJ", that is, ]sat most 'n' mis1characters. C{CR} takes parame oA- C{?_aB} - c to be/#xMt es0(C{default=1}) maximum numberes allowed]count as aeThe results from a successfulse will contain8\2ext6NTinput1and+ fo3dl  `a listT@posiGe where@es w5fou#KoriginalFXL uso compare aga; If is an empty list, then the match was an exactr. Example::patt = CloseMD("ATCATCGAATGGA"),.parseString+X+ # -> (['C'], {'mises': [[9]], 'original5x?']}zXb"")zException: Expected W (with up to 1 ) (at char 0), (line:1, col:1) #`J{0# c allowing23 e, maxM/=2?4, 2"""def __init__(selfQtch_s'1)fsuper(,@%).Or.name =]`@"* + Verrmsg = ")%r'%dQ)" % .#, i mayIndexError = FalsemayReturnEmpty%'QImpl(sD, inloc, doAcys=True 0tar2locP[?len = len(7ingmaxloc = s@+(   if6"<=7leny?]9elfS .X;= 0!E[ = []em{p9for\s_m in enumerate(zip1R[loc:+]a`src,ma:s_mif src ! > [.append(X7loc0!if?0) >qAZbreakOelse2 J + 1>Uresults = PR$([[o:loc]]?[]x[<;ches  return loc, results raise ParseException(instring,7self.errmsg, )B class Word(Token):X2""" ( for matching words composed of allowed character sets.BDefined with containN5all@vinitialH"s,DAan o/alCGbody< (if omittedH@defa? to the qx), and tsminimumF1max'/or exact length. The ia value?C{min} is 1 (aW&0< 10notAid); KsL0ax}1 C{~}Qare 0, mea\3no  H@tric,6. A_HVcludeChars} paramecan lisththat might brund in Kg`put C{R ; usefuld(! a`V printablesNe0one7two,Cance;L{srangewxfcustomM nw*Q C{8} expressions, usKiP notaa from regula./ k0]Aamon mistake to/ xttch a specific liter%F, as8P("Add")}. Remember "}fs| argument I{}ws. This b wouldJ ", "AAA"Y"dAred",any otherpmade upkRjs 'A', 'dr"e'3's'T)n 'ruse L{L}PL{Key }.*lQpypar!in`s helpk%PbuildsO - L{alphas9num"  0@ ifK < 1praise VError("cansQ0y a9imum lengthD; use Optional(0())JSzero-) is permitted\pinLen =e  6#ax6&axQum._MAX_INTiPexact1k &mm!# = _ustr(&`.errms"Expected " +i.= PmayIndex1 = O $m5 = 4' '^+P(!=1 !=0 8==0 "if I=_ {>PreStr = "[%s]+" % _escapeRegexRang^VlR@elif*= ==4 %s*\x  (re.escape(self.initCharsOrig), . _DRegexRangeDSAbodyS)TZelse:freString = "[%s]n*" % \15( ^1if asKeywordar"\b"+7+ ?tryM = re.compile(M qxcept E?ionV bNone def parseImpleQ, ins, loc, doActions=True )]rresult =u.match(Z;locrif not 9cpraise PPqqerrmsg,z)F1locX[.end(breturnN`.group(2J~[0Q ] inu+8/@starW6locF+= 1hlen = lenc3F0max["= v+omaxLen&Rmin( 4DtQwhile,<(E andoA[locE ~Uthrow = False !ifq-<LinLe& K J`maxSpecified<t|Aif (!>0Aing[*-1O) or (loc<(  ( $ /:Cr__str__ |Wsuper(Word,$).Deip@pass M.strRepr is :&VAsStr(s):  if len(s)>4:  return s[:4]+"..."(Oelse? * 7 if ( self.initCharsOrig !=Fbody)^= strRepr = "W:(%s,%s)" % ( cSaAsStr(* g-), q:) )Z  a K class Regex(Token#"" for matching strings that a given regular expression.Defined withA specifyS?the<P in a|m recognized by /inbuilt Pythozs moduleq!If& ex contains named groups (d us`C{(?P<">...)}),Hse will be erved as .`d pars`sults.`Example:^realnum =yr"[+-]?\d+\.\d*"Fdate('year>\d{4})-month>\d\d?3day'J-# ref: http://stackoverflow.com/questions/267399/how-do-you- -only-valid-roman-numerals-3-a--2"M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?XIX|IV|V?IcompiledREtyp*0(re("[A-Z]") `def __"__, pattern, flags=0`"""Theameters C{0} and C{6@} ar'pssed to37 C{p)} funcb as-is. See(/}0 anGAlana6oacceptablos.asuper(,F%).)(if isinstance(b, base14not9@warn#. d("null$pa$; use Empty() Vead",9OrSyntaxWa!, ylevel=24.$ = \$=" =F?try8rsq,e[~N+1reSL ; exq sre_cots.errorqz!ink (%s) y,zt & raisce  elif isinstance(pattern, Regex.compiledREtype):9@self.re = 7O = \reString = str~)*flags =  Kelseraise ValueError(" may only be constructed with aTor a  RE object")D0nam  _u`.errmsQ"ExpelA" + =mayIndex = False$ReturnEmpty = Trudef parseImpl(h , p, loc, doActions=: `resultu.match(A7locrif not 5PPExcepqH", aSloc =]W.end(zdgroupdict re~R"s(./'()LKif dfor k inret[k] = d[k]r4ret*r__str__ o;tryzFasuper(,&$).EeX _ KDpass!ifd.strRepr is Non:n#= "Re:(%s)" % repr(  9c~ class Quotedd(TokenxBr"""G }ws)s that are delimipby quot&characters.JTDefinthe follow2`parame26-QueChar - f one or more k d_M[S- esc[E0 to2ape{s, typicalackslash (default=C{}W]bpecialL sequenceean embedded%a (such as SQL's ""5/") multiline - boolean indicarwhether|s can span 7@ple ;sc !unmi Med text shouldGdn m1end^/ o0end+I P => sU"as%x  convertWhitespaceEscapes -Rd whitespace (C{'\t'}, n .etc.) to actual whitespace (default=C{True}) Example::qs = QuotedString('"') print(qs.search$lsjdf "This is the qE" sldjf')C cou/x_k{{', endChar='}}B({{"/}}?sql"!sc?='"9~ with ""embedded""s]s8[['6']] !# D82"""ddef __init__( self,,P, esc Q=None4multiline=False, un}Results= NHconvertWbEscape2)asuper(t,%).# remove Bfrom chars - wont work anyway B" =4 w.strip(fif not"Fwarnings. (I@ can8!beB`empty ]ng",SyntaxW;,stacklevel=2y^braise /PError)ifbv HOelse5 D$() S&&/.23e6 W. $Len = len(7,QfirstS'[0, = * $ = R ! " + = .? = 5if [ /+@flag re.MULTILINE | re.DOTALLN3`patterr'%s(?:[^%s%s]' % \04(Me(@,.2 _,RegexRanges;O[0])A(escChar is not None and _escapeRegexRangeChars(esc ) or '') ) Velse:self.flags = 0pattern = r'%s(?:[^%s\n\r%s]' % \4TR( re.(`Aquot.),. ;DendQ>?[0]A is not #(bif len|_) > 1< N+= ('|(?:' + ') .join("%sFk]" % (,u?[:igP7i])P for i in ri(#-1,0,-1))'maif escV rE0%s)o.?VU.V?U<ZReplaceP f+"(.)"D/jr')*%s%D?try ree.compilek!, TreString =)7t except sre_constants.errorwarnings. ("invalid Q (%s) passed to %,wrSyntaxW\, stacklevel=2vraise CZ0namQ_ustr6!Perrms"Expected " + = PmayIndexE` = FalvSmayReturnEmpty = Trudef parseImpl(hQ, ins, loc, doActions=:' )jresult =3s[loc] =QfirstX)re.match(j1loc%.!ifCfwa PE6ionPmSz)1locW.end( rey`.group ]!unPR(s:_ # Jap off )sC g!t[N#+QLen:-LLen]bPif isGance(ret,basev(ngn2# r3aped whitespace.qif '\\'m"etelf.convertWhitespaceEscapes: ws_map = { 3r'\t' : ,' n'/n'' f'f' r'r'}for wslit,wschar in .items() et = ret.replace(K L>) u## ,! el d wnacters.if self.escCharrX.sub(0RPattern,"\g<1>",ret_quote Q# !6,!nd return loc,fOdef __str__(B ;tryGasuper(jdString,$).L)except E;ionRDpass strRepr is None6n.#1= "]2d s starting with %s endB" % 8-@x class CsNotIn(TokenF2"""  #Qmatchords composed ofp I{not}Ca given set (willQinclude wq-]e  if not listed$the provided exclusio`- see example).jrDefinedLb containall disallowz, and an optionaminimum, max `and/orwct length. The default value>`C{min}B1 (aR&0< 1valid); KsL1ax}sC{exactare 0, mea$no 0 rec.E?:#Pine ama-separated-qas anytDthatRa ','[Bcsv_1=s7','qprint(delimitedList(9r).parse("dkls,lsdkjf,s12 34,@!#,213")SOs ['7B', ': = 0@!#R213']nDinito,=q, min=12=0,)=0w/luS*FkipW r= False%1notR% =$ ifG < 1raise ValueError("canno4t specify a minimum length < 1; use Optional(CharsNotIn()) if zero-/char group is permitted") self.minLen =qif max > 0:296#ax6&axOelse. _MAX_INTi_exactk&m!#name = _ustr()!errmsg = "Expected " + +.= /mayReturnEmpty = (+IL= 0 cmayIndexError = Falsedef parseImplM, instring, loc, doAcs=True )f%if-[loc] in1not$,4praise PqAExceO(o,M 8`tart =loc += 10not1s =C."Dmaxl|0( sW+{m_,)VPwhile <FVand \\% >0notG0H!ifg-" <Z>rYq[:2r__str__0  4^RO= "!W:(%s...)" %mPF[:4]=TQ;class White(TokenK2"""Sal matching 36forw@space. Normally, IrignoredVPby py-Rgrammars. Thisbis included when someTstructuresTare significant. Define with a  containy)thQacters to beWed; defaultC{" \\t\\r\\n"}. Also takes oal C{min},Pax}, !C{} arguments,g asaPined \C{L{Word}}.*`0Str{" " : ""^0\t";TABn+LFr+CRfF.} def __&init__(self, ws=" \t\r\n", min=1, max=0, exact=0): super(White,AC).__P)&elf.match*[ = ws1setspaceChars( "".join(c for c in d .wo$ if c notf') "#~;Vleavei(#[name = ({+q{Strs[c]p LmayReturnEmpty = Trueerrmsg = "Expected " ++ 1minLen = ifG > 03max6&axQOelse. _MAX_INTik&m!#def parseImpl( , instring, loc, doActions=J  if(1[1/ ] praise PzPExcep`GxC,`tart =ploc += 10max1= s0&@min(5len Pwhilez# <-E and6O[loc !ifW-<.| ?A%mr%q[(:} class _PosiaToken(B} " A =!__P__.__&__!mayIndexError = False\ GoToColumn(2"""v to advance specific cE of input text; useful tabular report scraping.^gR,\/noYU Rcol =H0i1pre q0ol(i!A) !=K.col$l4 J"if@ignoreExprsH&,i`_skipI.eables(w5|9 1.is!()Jcol(  w_o parseImpl( self, instring, loc, doActions=True ): thiscol = col(/>& )(4if + > eG.colHOraise ParseExceps("Text not in expected}Qumn",[xnewloc =! +z$ -Uret =o[2#: @]'3urnp, ret class LineStart(_PosiTToken42"""KMatches if current p1 is at the beginning of a line withinp, WExample:ac0tesF'''\1AAA_ ?and 4"buF one;B =definitely+0'''>Afor (J) + 'AAA' + restOf).searchS(eIsprint(tPs&[\6, '' ']<`def __1__(o /Vsuper, %).1Z.errmsg = "Es]"w BImplx1ol(c) == 1B0ret)[%JF)7?End530end!/?End setWhitespaceChars(rElement.DEFAULT_WHITE_CHARS.replace("\n","");  A ?+se%" bAWordbKfbeginningl a b,xg is not preceded by any character in a given setDC{wordChars}E(default=C{print}). To emulateC{\b} behaviorLregular expresst,T`use C{alphanums)}.} will also mw ^S) be_d, or5 a line.=F%, 6 =  QEset({4Nota@35if p[loc-1]7a.2 orIy6]ig&lf8F7f%@~S|[vmfollowver in a giveBn set of C{wordChars} (default=C{printables}). To emulate the C{\b} behaviorLregular expressions,T us0WordEnd(alphanums)}. C{} will also match at ibend ofIstring beparsed, or/ a line.72""" def __init__(self, 6 = "):1csuper(,6%).E)(Helf.OEset( )skipWhitespace = FalseNerrmsg = "Not\2" 4CImpl"in-, loc, doActh=True *len = len(7ing1if len>0 andT</35if Dp[loc] is "or0O0ing4~-1] not:9praise PPExcep.R , `return@, []Tt classT(drElementaAbstract sub@"ofC3, for combinJpost-proc71ng d tokens ,ss, savelistN E BsTance(k_generatorTypLsMAist( )UTBbase 1.HJ = [R._literalSCF ) ]f/elxRcolle .IJ/bl# if sequences providwrap with LFif all(in&, )=sAj = map+>G qTKelse;try)KE se P_ErrorK [GkqcallPreE }&__getitem__(@iq MK![iAdappend<Yother@9.+%$strRepr = NonVleave4 z"""Extends C{/} defined in' base class, and also invokes C{leaveWhitespace} on all contained expressions."""*self.skipK = False%C s = [ e.copy() for e in F!]7:+e.&()!Rretur\" def ignore(t, other )Xif isinstance(!Q, Sup +"if#E notdWExprsZ/super( Parse$Y,").<y ;&eMaZrXs[-1]\Kelse(r__str__ ;tryC{ z$).Osexcept E;ionUDpass[p!if.strRepr is NonY3#= "%s:(%s)" % 1.____.__name__, _ustr(.))Zstreamlin ,9)Qeu <# collapse nested And's of them(a,b), c), d) toxa,b,c,d# but only iNre are no pm@ act or resultsNames on|1# (likewisQ Or'sRMatchFirst's5if ( lenI== 2wZ}=5'[0#M ( ):Anot(g.A.*_m.debug# =-x[:] + [;1] AT=SfAmayRtEmpty |p =IndexError =2 +-1V other.r esultsName is None and not other.debug ):&self.exprs = s[:-1] +? ?[:]?strRepr =%mayReturnEmpty |=\ =IndexError =& > rrmsg = "Expected " + _ustr(")1 r Rdef setR{( , name, listAllMatches=Falsen0ret_uper(ParseExpression,._X W8retvalidateTrace=[]itmp = #P[:]+[for e in( E$e.EG(tmpJ.checkRecur ( k ^Bcopy_67t2retb = [e.  Mclass And=2"""Requires all given C{}s to be foundH3the-border.LPs may2`separaby whitespace1M%qconstru`using `C{'+'} operatod31als8-8,wch will sup backtracking.Example:`integeWord(nums_W = OneOrMore(*alphas))\*[Yu("id"),I (" 5"), gage")]u # more easily written asiDd! +f5 + $h I_QStop(F__init__, *args, **kw .2sAFAnd.X@I C>)o = '-'eleaveWp(  , /ps, savej = Tru <  = all(e. I6setRChars!)A[0].^ =6kip>0:sN`callPr#seLpBImpl0, iing, loc, doActions=True ): > # pass False as last arg to _parse for first element, since we already a# pre-9d the string[part of our And)6ing@loc, resultlist = self.exprs[0].B( inY!, 2doActions, callPreP=)`errorStop =He inrF1:]:"Pif is~pance(e,4._EW)/3tJTrueQ"lcontin5if ;W?tryO3tokens = e9 %Dqexcept KqSyntaxE?ionzOraisIEBaseGeMpe.__traceback__ = Non_zr._from_oion(peQIndexh(U, len#),QRrrmsg ?els1D3xpr 6or .haskeys('+=5breturn." "def __iadd__(, other m L!b, base -C="rE._literalSkbClass(Mu.append%0 #A[]=checkRecursD+LpsubRecC9,= /b[:] + x" ]m -e. n dif not e.mayROEmptBZbreakastr__( if hasattrh"name"z!\!ifV.strRepr is # = "{" + " ".join(_ustr(e) ))(}"sT0 c:A Or(`Expres2"""Requires that at le7kone C{=}bfound.=aIf twoS_s match,/]je longestSwill be use\0May coucted usC{'^'} operator. Example::# construct Or using '^' operator+ number = Word(nums) ^ Combine(w+ '.' +()FPprint>ber.searchString("123 3.1416 789")62s[['123'], ['1 b789']]l2""" def __init__( self, exprs, savelist = False )$super(Or,3%).C <V!if_."JE.mayReturnEmpty = any(efor e inMeOelse\fTrue parseImpliing, loc, doActions=: maxExcLoc = -1S ep7x = Nonetches = [3 ;try8loc2 = e.tryP)(  #0qexcept +E ion as err_err.__traceback__U ifCr.loc > ?LocS- !'erY (a6locI%IndexErrotif len() .J,W,e.errmsg  > /># match among alles, to retry longestshortestaNGes.append((K0, e_-$if_ > sort(key=lambda x: -x[0]x!_,: PrA e._  =% 3.1,  Nais nott buc.msg =JRuSraiseY / a'H "no defined alternatives!",)n`xor__(*y, otherPif isRance(!q, bases@- other = ParserElement._literalStringClass( ot+C) return self.append%q #Or( [,:R] ) >def __str__($2 ):[if hasattr(\x,"name""&~!\!ifV.strRepr is Noned&]#= "{" + " ^ ".join(_ustr(e) for e i`exprs)+(}"uycheckRecursion0, pxwIList psubRecC9=/S[:] +h& ]C -e. n0 c MatchFirst(+`Expres2"""Requires that at least one C{=}bfound.=pIf two d_0s m{p, the fJ`listed>\nBwill1PMay be construc4QusingOC{'|'} operator.Example:3#C  L5'|'E_ 0# wtorder of"to3AnumbWord(nums) | Combine(+ '.' + Pprint>ber.search("123 3.1416 789")) # Fail! -> [['123'], ['+d789']]-# put morexgective' |FmBetter d__init,ps, save = FalseFper(8,o%).KD"EQ.mayR|Empty = any(ee?els \DTrue DImpli[ing, loc, doActions=: maxExcLoc = -1 ep7! = ;try*ret = e._/( 06ret bexcept-E ion as err ifr.loc > ?Loc)\ :err|$(E0err^ )IndexErro if len(instring) > maxExcLoc:  eption = ParseExcP(instJE,len ),e.errmsg,self)Y iLoc = >& 1# only got here if no expressmatched, raise eQ for  that made it the furthestgKelse#if is not Non*5&p.msg = i,6 $7 loc, "no defined alternatives to!",)hdef __ior__(, other )Pif isRance(!b, base -C0rElement._literalS5SClassM &areturnu.append%0 #MFirst( [$]DG st$ if hasattrh"name"!/!ifV.strReprM# = "{" + " | ".join(_ustr(e)3e i s)+(}"uycheckRecur(1, pIList psubRecC9=/S[:] +h" ]]^ ."-e. n0 cc Each(2"""zRequires all given C{5}be found, butZany order.KECs may be separated by whitespace1M% co uc'QusingRC{'&'} operatodfgample:6color = oneOf("RED ORANGE YELLOW GREEN BLUE PURPLE BLACK WHITE BROWN"-shape_typeUSQUARE CIRCLE TRIANGLE STAR HEXAGON OCT"K`integeWord(numsi6A = ": (STposn_4 3cGroup(o@("x"e',' + `y"))("3P>QR !("0Esize/ .e/Q# use" (P '&')E ac iibutes` L(P and b are r1d, oh-alx0spe)P&S O9(UE) & b_attr)   shape_spec.runTests(''' %: SQUARE color: BLACK posn: 100, 1207CIRCLE size: 50@#UE?K50,8<eRGREEN:220 sTRIANGL<K20,4; )prints::Q"['5B', '   ', ['100,f120']]-8ACK@>%Q - x} *y:-:   = 5 UE"8&UE-.+[';#5X- y: `?-k @$    "['=@ &2&L *&*4*[>; ['<#+ +P+A-B2"""def __init__( self, exprs, savelist = True )uper(Each,4%).D = elf.mayReturnEmpty = all(efor e in.S IskipWhitespacemExprGroups$&parseImpl instring, loc, doActions="if d#opt1map = dict((id(e_),e) ` if isance(e,Op7al)_ZR = [ PL M2MH and not `(#.ob+ opt2*Xmulti/ZeroOrMore)^required /ne\ WR 8(,re,OneOrMorew)) ] self.required += Tmulti1initExprGroups = False)tmpLoc = locSReqd e`'[:ttmpOpt $optionals%matchOrder = [] dPkeepMing = Truhwhile #::0tmp1tmp#+ +  TPfaileefor e inav (?tryce.tryParse( instring,T)9qexcept 2E ?ione.append(eN?lse=A\opt1map.get(iU?,e)Y%if!h*.remove''elS?OptR ?OptQrif len( A) ==?)Xv1 ifBmiss", ".join(_ustr(e) D< I[raise(%cloc,"M_one or more  elements (%s)" % )t# add any unDed O,case they have default valuesFined EV+= [eBexprs if istance(e,r) and e.&| %resultlist@O 4?%Ae._pzy @doAcswJ NafinalR+cBsum(',8([];`returnt(, Fdef __str__( if hasattr(fx,"name"""d".!\!ifV.strRepr is Non;#= "{" + " &2 s)+(}"uVcheckRecursion!, ELpsubRecC9=/q[:] + [Q? ?-e. n r class1Enhr2"""?Abstract subDof C{ParserElement}, for combining and post-processparsed tokens. """ def __init__( self, expr, savelist=False ):1>psuper(PXEEnhance,A%).QD)<if isinst0(lpbasestrhl0subclasstru._literalS;C"0, T FJ1 = C ()<7lse*SL[\0.F(strRepr = None!if9q is not ?mayIndexErroEb.S5ReturnEmpty =j67setWhitespaceChars .w oFskip9o oaveAsList3/qcallPre 13ignoreExprs.extend.2) 9F\DImplG, loc, doActions=TruP!ifz r+!._t/( j#, eRraise$PExcep@("",berrmsgVleave 6Jelf.1 = ^dx g.copy(>1A LVy, othery!, Suppress+k#ifD"indc 3f g?)(Z?(+0gH[-1]B,streamline Bx =G def checkRecursion( self, parseElementList ): !if&= in(&-craise ^veGrammarExceptn h +[6] )nsubRecCheck=ur[:] + []:.expr is not Noner$ .ce  {2) ^def validate3Trace=[]3Utmp =3#3[:]T0uH(tmp4=elfr__str__ +ry$return super(PEnhance,E$).Se  YDpassRstrReA and == "%s:(%s)" % .__class__.__name__, _ustr(`)SY! G FollowedBy72"""Lookahead matching of the giveQ  esV. C{d}Fdoes I{not} advDOS@posiaq withininput string, it onlyOverifies that-@specdm3es *rcurrentIx always Ls a null token list.SExample:'W# useh2 to a label0 ifCis f by a ':'^data_word = Word(alphasQ&= *+{G(':'-Pattr_ = Group(?+ Suppress1 + OneOrMore(Y, stopOn=4Q).setY Ac(' '.join)pP ).!eS(("shape: SQUARE color: BLACK posn: upper left").pprint(l s1[['QB', 'Sa'], ['XZ_a#']Ad__init,d ne8zAmayREmpty = True]v%BImplD, inrloc, do s=: uA.try(>7T []2_NotAn.pto disal<n 8t} advance t8he parsing position within the input string, it only verifies that-@specdSe expressSdoes I{not} match 4rcurrentS. Also, C{NotAny} Askip over leadwhitespace.4T(always returns a null token list. May be constructed u'~' operator. UExample:: 2""" def __init__( self,' )4bsuper(,$%).4=)L_!#~Eu.leaveW(#A. = False # do NOT useJ , don't want to propagate slAmayRWEmpty = True$errmsg = "Found un_"ed, "+_ustr(Qe)dBTeImplCi0loc Ac s={ \"ifT.canParseNext(Dharaise -PExcep^ 2,X h ([]T__str  Shasat},"name"k}!\strRepr is Nonek&d#= "~{" + h + "}"^?class _MultipleM(:lementEnhance, stopOn=- aq(aveAsListsender =sPif is(&b, base!" =)"rE._literalS0C K!Dnot_C~ 3if Qs not epxD(}__E@elf..,O_ignorables1_I5UcheckC.i27if 5 Ftry_@=5QA.trypN `# must at(s e (but first see if we are sentinel;Ncwo, fail EC+_ ( ~)#do, callPre=W;tryM1haseExprs = (not not self.ignoreExprs) while 1:!if check_ender!%rtry_not$(instring, loci.vif hasIVpreloc =a_skip_yables( g hOelse[ >locloc, tmptokensexpr_parse|, doActions'ifO&or .haskeys()&+=4except (PE ion,IndexErrorVfpass A`return", j class OneOrMore(_MultipleMatch\2"""5`Repeti of one or morethe given Gression.8Parameters -+ 2 that must m fRtimesM - stopOn - (default=C{None})R for a terminating sentinelK (only required %he* would ordinarilyrQ)aExample:  data_word = Word(alphawlabel =*+ FollowedBy(':'#Pattr_ = Group(?+ Suppress1' +Q).sett(' '.join))$text = "shape: SQUARE posn: upper left color: BLACKJ>w!).~S](_ ).pprint() # Fail! read 'VA' as,@of na-> [['C', ';(]]T# useT`ibute = to avoidJf Dpart NS&,=p Z(z^ # Better 3`'], ['GP1, ''Y1# cDalso be written a6  * (1,) [ def __str__(R  (+x,"name""&0".!#!ifV.strRepr is pB;#= "{" + _ustrx.) + "}..."`|AHZeroipleMatch): """ Optional repeti  of zero or morethe given expression.BParameters:! -+2 that must matchgUtimes= stopOn - (default=C{None})S for a terminating sentinelK (only required if * would ordinarily$Q)a" #Example: similar to L{OneOrMore}&def __init__( self,<", =)X super(ZeroQ,4%).D=D)t-.mayReturnEmpty = True$ parseImplinstring, loc, doAc6 s=B 7try{rs&).leexcept (PE ion,IndexError}$[]T__str| if hasattr(7,"name"Z".!\v!if.strRepr is  ;#= "[" + _usx.) + "]..."`S4elfdclass _NullToken(objectabool__SCFalsP__nonr__ = __9%AJmC _ol@NotM edM2) lementEnhance_>-o>$ (PvalueAbe ry(is not found.J/# US postal code can be a 5-digit zip, plus h4qualifier czip = Combine(Word(numsPact=5wd}('-' + %74))zip.runTests('''lpa# tradjaal ZIP $Z12345 #9z+4 form12101-0001 # invalidH j98765-3'''yprints: ![''=ZIP? D- p ^ (FAIL: Expected end of text (at char 5), (line:1, col:6)A2""" )def __init__( self, expr, default=_optionalNotMatched ):>ssuper(O%,C&).SMsavelist=False ?@elf.AsList =.7o0tValue = %mayReturnEmpty = True &parseImplinstring, loc, doAc s=: 7try2itokens_f/( \, callPreP except (E ion,IndexError"ifB $is not  BresultsName+/R0/([]:B[;u]N??els KGV = []0r]+!]T__strT <if hasattr(|,"name"^".!\strRepr is Non;#= "[" + _usxjx) + "]"]y>class SkipTolementEnhanceZT  for skipping over all undefineduntil the ma{`ession`found.Parameters- - target>@mark{]#he data to be#ed- include - (s1=C{Q}) ifF,nis also #d T ( ?andQare rZed as a 2-ej B#).V{- ignorP}) usfoine grammars (typiqPy quo8 s Z0coms) that might contain fsH O- failOnRspRallow)beQAd in\0st;6@ bef%\,Z,!Example: repor3'''G OutstandIssues R-- 1 Jan 2000[5# | Severity | Description  | Days Open ,-+ , V 101 | Critical | Intermittent system crash |6V0 94Vosmetic | Spelling error on Login ('log|n')GV,14V79 | Minor*Sslow when runnftoo many reports V*47V6'''integer = Word(nums)SEP = Suppress('|'# use SkipTo to simply match everythup until the next SEPd,# - ignore quoted strings, so that a '|' character inside a1 does not bparse acwill call token.qp() for eachA"edq, i.e.,dFbodyeDng_data =S(SEP,=SF8P.setPA(rMap(str)9ticket_exp(("issue_num") +k E+j_("sev34days_open"wtkt in r.search;(&):6print tkt.dump(('s:,['101', ' 66']k%- ':  - :LC:Esev:@['94C_O', "`o", '14lT'- 9"- 2@['79 -/47( (792""" def __init__( self, other, include=FalseNone, failOn=  csuper(=,P6 ).a[ r.=E "mayReturnEmpty = True$aIndexE!= $M=% self.asList = False if isinstance(failOn, basestring):,3Rself.' = ParserElement._literalS:SClassR)EOelseT ]1rerrmsg = "No match found for "+_ustr(*bxpr) @Pdef p`Impl( ! , , loc, doActions=True startloc =+SB0len1en(,"aexpr =q. _ .'_ A_caniDNext5."ifq is not None v bignoreExpr_tryfb.bf p?tmpKcwhile "<=;len#y 6# break if bessionJ&es2p,2<x[ mV 0advb past A q1*?tryn < Ebexcept?QBaseE,io,O ] ] , callPre =(", IndexError3# n$,  2in g iJ+= 1#d skiptonYLYU# ran off the end o Sinput without}:ing~rezRraise>^.,B# build up return valuZ=~B[Z:loc]+PresuloR$s(E7.includeM  maX, +=(loc, skipresu#lt class Forward(ParseElementEnhance): """ , declaration of an expressto be defined later -@)used for recursive grammars, such as algebraic infix notj.DWhen thesis known, it is assig~!to+#C{} variable using'<<' operator.Note: take care wxY9'o V not to overlook precedence \sSpecifically, '|' hh lower<Pthan 0, s3at:fwdExpr << a | b | c$will actubevaluated asC(D)Ethereby leavb and c outp0Jalternatives. Irecommended that youexplicitly groupes inser-in()`pConvertato useaF'<<=iRtead *0voiis problemaSee L{Results.pprint}AamplaQr crewn_def __init__( self, od=None csuper(,+&).;5, savelist=False )h\lshifj eif isinst (, basestr`x1 = 0rM._literalS5Cv(*:.E" =h,strRepr =  mayIndexErro#M.6ReturnEmpty =q7 8setWhitespaceChars;wpFskip: q  qaveAsList4 0`ignores.extend(_.r M -i.KBAGJe7 r]. 1 = GMkstreamlineY ifH.)dNZHd = True{%"ifGOm L+P(t(wf(svalidat$, Trace=[]3*in, tmp = validateTrace[:]+[self] 0if .expr is not None:'2(A.valZV(tmp))!checkRecursion([]) #def __str__(u' )fif hasattr(Hx,"name""areturn>.!Z __class__.__&__ + ": ..."4-# stubbed out for now - creates awful memory and perf issuesz._revertCx" = , = _ForwardNo4e,7try retStringd#usVU?elsA""lfinallB' E" + EAcopy%ySuper(|,!).Wcret = 7(,I"<<0ret/"UTokenConer(ParseElementEnhance^#""Abstract subERof C{;Pxpres!},c[Wp\d results.VDinit , c, savelist=Falses $__LF6 )#I .bQAsLisfvCombine(e C to concatenate all matchtns#a single stBy default, the9patterns must also behtiguous in1SinputT;bthis can1disabled by specifyC{'adjacene$'}Qconstructor.Example:l real = Word(nums) + '.' +A`print(4.x('3.1416')) # -> ['3',G1, 'b# will erroneously2 followingx `y F4 =  j #no1where are inxal spaccn Exception: Expec ted W:(0123...) """ *def __init__( self, expr, joinString="", adjacent=True ):?Lsuper(Combine,C&).SM v.## suppress whitespace-stripping in contained parseessions, but re-enable it on the 0 it%if(u.leaveW( % =G\"FskipA0 = ! $L' =Y &rcallPreH$dignoreYother!if. PLrElement.M!, LKelse>f,j)FAareturn&& Apost inng, loc, tokenlistretToks = X.copyCdel (2[:]rA += yResults([ "".(tB._asPList(")) ], modal= O)srkName and.haskeys(D84[) /class Group(TJConverterk0 topFrmatchediqs as a - useful for1=s of C{L{ZeroOrMore}}5One .Example:qident = Word(alphas4num8num0ter?V| num rfunc = + Optional(delimitedB)l`print(<. ("fn a,b,100")) # -> ['fn', 'abT100']I +[SX Cp.saveAsQo&[ZODict!a repetitivgpBalso1dic82ry.bEach eUQ can ,be referenced us+he firstrbdits ke]Us`tabula{port scra/2whe[column can be used as a item key. Example:: data_word = Word(alphas)"label = *+ FollowedBy(':'-attr_expr = Group(?+ Suppress1 + OneOrMore(Y ).setParseAction(' '.join))*text = "shape: SQUARE posn: upper left color: light blue 9ure: burlap", stopOn= u# print }ibutes as plain g<s,*(44h0).p1pString(p).dump(4pH# instead of1), K using Dictq(A)) - will auto-assign namePresulM)L aaccessqd fieldSdict entries, or outputnj!['`0'])B(1.aspscJ2, '@', ' 0ure ('][bO], [dfh]-SKr*"{':: 'wJ': 'IX2#, :}_See more eqs at L{R s}/^[2by s.O#""Ydef __init__( self, A' )`super(B,"&).2,U .saveAsLisWDTrue n2pos@o, loc, tokenl<for i,tok in enumerate(-,`if len g) == 0`contin`ikey ='[0XPif isPance()L,intz*EP_ustr[0]).strip(*?==1[qX] = _WithOffset("",i^'el==2 and notxtok[1],UQse:  dictvalue = tok.copy() #ParseResults(i) -Edel =>[0]"uif len(%)!= 1 or (isinstance,rV) and_.haskeys()):htokenlist[ikey] = _PWithOffsetqOelsec7@[0],fif self.rZ> ente2 I{-name}(line:I{current__Q}, I{P_locamatched_os})".} co tehe decorator w8ill print C{"<<"} followed by the returned value, or any exception that*parse act raised. Example::wd = Word(alphas),p@tracePRAQ8def remove_duplicate_chars(tokens)eL ''.join(sorted(set(8)wds = OneOrMore(wd).set()[Q(wds.String("slkdjs sld`d sdlf0jf":s0`>>enteAline: '^', 0, ([# ',-d1dlfdljf'], {}<3*[#[0].__class__m + '.' + 0~ys.stderr.write( "3%s(%s', %d, %r)\n" % (M,#P(l,s)#) ;try ref(% E as @sB%s (G}ion: %s9excb29ret\2ret] z AttributeError BpassUez # # global helpers # delimitedList( expr, =",", combine=False HO to define a=R list ofUessions -ba@iter7PaultsCB','.$By,0Jelements andfrs can have iW0venwhitespace,0W1comBQ, but=be overridden/GE$C{True} inconstructor5If ,} is set!C{9PmatchWF areas a single sia, with|:s included; otherwiseiWnU"ofosdsuppres E )0aa,bb,cc") # -> ['aa bb7cc'Uhexnums)=':', combine=True).parseString("AA:BB:CC:DD:EE") # -> [''] """ dlName = _ustr(expr)+" ["+Pdelim"C]...Cif combine:Tareturn C ( 7 + ZeroOrMore( [" +p) ).set()M?elsXQSuppress[)] @ deuntedArrayU, intExpr=None )2Helper to define a coE list ofessions.bThis h:7s a pattern3the form:oDqintegerO#..T`where 9pleading1tells how many;s followGThe matched tokens s\a!a-% FS is s#edl SIf C{e}(pecified, it should bZ py that produces anvalue. gxExampleRWord(alphas)M'2 ab cd ef') Jab', 'cdDb`# in t9er,@give binary,I'10' indicat!2 <Rs arek!e :KConstant = A'01'TP'Action(lambda t:4(t[0], 2)k" o :/10; fMm = Forward(XFieldTs,l,tO@n = X<< (n and Group(And([M]*n)) orXempty # [2 if30is  {Onums{1intzm $ =pT.copy,"CLen"7!)ad4 J, callDuB2TryWE(" +v'(len) ' +A + '...')0_fl4n(L re]Pfor iLUQf isiPce(i,p?ret.extend(diY! ]40app4i54retPreviousLiteralnr!iscrectly8bd fromn[y ed 3a p expression, t>hat is, it looks for a 'repeat' of a previous expression. For example::=Airst = Word(nums)second = matchPWLiteral(f:.%qExpr =  + ":" + HXBwillP C{"1:1"}, but not2"}. Because this0Bes aDl!, VBalso+ the leadingUc1"} in B0"}.J"Ifa!isdesired, z!C{7Do I{not})with packrat parsvsenabledh2"""qPrep =Sward(>def copyTokenToRer(s,l,t)::Gif tlen(t) == 1!rv<< t[0]IOelse0# flatten t tj3t#@ = _t.asList()*DAnd(<1tt) ttO9DTEmpty7.addParseAction(G, callDuringTry=Truemrep.setName('(W) ' + _ustr(`return rep  0RHelper to define an" t indirectly(bd from ed6,R)p2&a"by7s"$;G~K are evaluatedP, andQqn compaD"so@~s 2SHelper to quickly define a set of alternative Literals, and makes sure to do q longest-first testing whenO re is a conflict, regardnthe input order,3but<C{L{MatchFc0}} best performance.Parameters-+ - trof space-delimited l!orllections7$% -} - (default=C{}) - treat all_5 as6G GFas an optimiza, will generatQ object; otherwi 4CV1u (if C{VH, or\@if cKAa C{}q} raisePexcepExample: comp_o"= "< = > <= >= !=@var = Word(alphaUnumbe8numpterm = @"| *parison_D1 = /++3kprint(9.searchS' ("B = 12 AA=23 B<=AA AA>12"Fs[['B', '=12'], ['AA"23%<"AA&>+9%~isequal = ( lambda a,b: a.upper() == b o@mask 8+.startswith(M') AparseElementClasMCrpOelseb`symbol[bif isinst(Bbase-z2;%s.split(/elG4 co0s.I?bleRAlist|P 4warnings. ("Invalid argu |p, expec A or Cble"rSyntaxW_, stacklevel=2sif not !No bRi = 0 while i < len(C3)-1F cur = symbols[i]  for j,other in enumerate(sy-f+1:]):29if ( isequal(=|, cur) )-Fdel N7j+1 Zbreakd!elfmasks(cur, id'.insert(i)vRcur =n Lelser += 1 < if not caseless and useRegex9#~ print (strs,"->", "|".join( [ _escap8PChars ) 0sym7] )7tryf`if len> 0)=="iD)qreturn ( "[%s]" % ;_Range ) ).setName(' | '=f .2re.-#}except E;ionLwarnings. %("' creating.oneOf, buildMatchFirst",rSyntaxWd, stacklevel=2)_6# last resort, justa `(-(parseElementClasS def dictOf( key, value2"""Helper to easilyclearly define aJionary by specify40thepective patterns\ !"keW. Takes care ofeLC{L{Dict}}, ZeroOrMoreGroup}} tokem0in l0proPorderk he can include delimimarkers or punctuationas long asb y suppressed,reby leavsignificantCtext!/ PnamedTults, so thate" C7\pfields.Example:0 = "shape: SQUARE posn: upFleft color: light bE9ure: burlapJfattr_exp(label + S,(':') + One(data_wordLQopOn=4P  Ac#('H(L{!).GpString(x).dump(>$w1 =  / =7n) # similar to Dict, butpler call format  result = dictOf(attr_label, value).parseString(text)Cbprint(I.dump()['shape'] .)aobjectibute access works too as6s::.[, 'SQUARE'], ['posn', 'upper leftPcolorlight blue0ureburlap']]g!- 9&: 7n&: l": r": p + !{'F': 'k2{}"'}2""" areturnw ( ZeroOrMore( Group ( key + O ) def originalTextFor(expr, asnc=True)n0Hel3to x5theI, untokenized  a given `ession. Useful tPrestore Od fields of an HTML start tag into,1rawmitself, overt separate `s withE ervening whitespace back# matchingVQinput. By default,As asq contaia N2. T !Ifoptional C{} argument is passed as C{False},9nCis afPC{L{PSR8s}}Rany r names that wer"ly ued, andZSsinglaT G1romO4. So if>80to slrdefinedl , you mus'toh\(@want@pres>n thoseW{ s.mxExamplesrc = "thistest bold  nAlu Xf ("b","i"opener,closer = makePTags(tag/0pat ](F + SkipTo(OC) + B(Lr.searchVt(src)[0& ''''['!qlocMarkEmpty().set AcX(lambda s,loc,t: loc8end@ b.copy(% endlocMarkeBr.callPreparse = False matchExpr = locMarker("_original_start") + expr + end)Rend")Uif asString:kextractTextmambda s,l,t: s[t.t:Bend]JGelseUGdef Y(P)!zt[:] = [f[pop('k['):t.cend')]u&P.setPFwAction({+`ignore\@s = >.freturn@ ungroup(62): -2""" Helper to undo pying's default ?ing of Andessions, evenJ ll but one are non-empty.#vTokenConverter ltt:t[0])plocated7bdecorate a w@ed ty with its a nd b in the input sbThis hBAadds(`followCresults names -n ion whereedr beginsA>?end<6end:@valupactual 3ed ]Be careful iftocontains C{} chaers, you may wantU.AC{L{rElement.}WithTabs}}~Example:1@ wWord(alphas 2for5wd).search>("ljsdf123lksdjj kjj1222"aprint(msa[[0, 'VD', 50[[8iK', 11kjj', 23;oIE?( -3: l! GDS("locp"|!(" ( .copy().leaveWhitespace()AP # c`nience pstants @posi(al)! W = aName("lineStart(L,#01EndZ = 0 "0123456789 +6a-z+ abcdefghijklmnopqrstuvwxyz; $_=f;#$_= Th4putmust be enclosed![]'s, and the returned2!isexpanded3acter set joi1rinto a ?.0ivalueszp~t may beX-FiHc - an t  with a lead backslash (such as C{\-} or ?]})O?hexSC{'\x'} (C{\x21}, which is a C{'!'}=#) `2Q0x##},lso supportedwards compatibilityD Voctali 0/04 o7p of anyabove, separaaby a dWC{'a-z'}, etc.Oy@bina, K<p'aeiouy9CA-Z0-9_$K_y3 =  p: p if not isinstance(p,[) else ''.(!c)sc(R[0]), c1])+1)4try2 ""SR(partY \(_r[ .pgS@(s).bexcept E?ionomatchOnlyAtCol(n,Rmetho\! aat require W$ atxrpecific`column inJCtextz`verifystrg,locn,tok qif col(&X) != %araise (.T"ed token atW%d" % n) return verifyCol def replaceWith( Str): """ $Helper method for common parse actions that simply o a literal value. Especially\useful when used with C{L{transformString}()}.Example:num = Word(nums).setRA(lambda toks: int( R[0]))Da = oneOf("N/A NA"HDPmath.nanD0terna | num] OneOrMore(-!).f("324 234 234") # -> [324,Q, nan ]Rs,l,t: [@Str];moveQuotes(%removing quota marks from,dAed ss # by default,8Tare included id results"ed> J`'Now i e Winter of our Discontent'`"/Hx# R1 top$ _6&"kt[0][1:-1^tokenMap(func, *args` toRine a=lpby mappj a Ikto all e s!a R list.If any addi72al , Upassed, they`forwarg tof giveny(asN@argurs after]0theZ`en, as`C{hex_u4ger?hex5int, 16))}, which will convertoPd dat0 anej us6|base 16}` (comp@lasteL!L{P}pFs =  ;KO.runTests('''#00 11 22 aa FF 0a 0d 1a%7'''%upperword^alpha'Astr.5P)my kingdom@va horsewr.title))  &OneOrMore(wd).setParseAction(' '.join).runTests(''' ;0now is the winter of our discontent made glorious summer by thin3JyorkZB''')prints::x00 11 22 aa FF 0a 0d 1a![0, 17, 340, 255, 13, 26] -my kingdom for a horse ['MY', 'KINGDOM 0FORAiHORSE'RC['Now Is The WnOf Our DnMnGnSn@By TnSun Of YorkL2"""def pa(s,l,t)m return [func(tokn, *args).U in t7try>6_name = getattr(A, '_R__',  8class__').D+except E?ions6%paH0 = $ paupcaseTokens = t Map(lambda t: _u_t).upper()) """(Deprecated) Helper pm! an to convertUsC r&. ApAfavom@L{pyIing_common.}` downH?low-C  _makeTags(tagStr, xml@"""IRnal h`Sstruct opening and clos tag expressions, given a =if isinstancebasestring+0res; = KeywordH'less=not4Gelse Y.gvtagAttrNjW^qalphas,nums+"_-:"Gif (>C@ValudblQuotedSm.copy(%q remove*#s ]NpTag = Supcp("<") +]Str("tag\5Dict(Zero`Group(:+X=H ))k[ Opal("/",default=[False]pResultsJ("empty",:t[0]=='/'r>k ablesLessRAbrack = ""n!(cXc+` if c Ein "[0 ?= qseAction( removeQuotes ) | Word(printablesLessRAbrack) openTag = Suppress("<") + tagStr("tag\5< Dict(ZeroOrMore(Group(:AttrName.setParseAction(downcaseTokensgW Op,7al(=0tagZValue ) ))B "/",default=[False])pResults("empty"lambda s,l,t:t[0]=='/'r+#>"LRcloseICombine(_L("" % < }?end{,/|tvsreturn >$, , def makeHTMLTags("):W2""" Helper to constructQqing andT !exions for \, given a  Matchesatags in either upoor lower , attribuAwithGaspacesqsd or un v s.Example:text = ' info at the P  page'n#r %s > Aa ms as a 2-tupleda,a_end =l4("AvPlink_m = a + SkipTo(:1)("a +R.searchString(ESy#"ink!A> p(like "w" shown here) are also accessiblePdg(._, '->', .e,s?->  x2 _^ZQStr, M )X~G?XML}@onlyn/ Cq simila L{} Tr (*args,**2Dereate a validat,1e a@be used e start tags created with C{L{makeXMLTags}} or$HT. Use C{4Attribute} to qualify a starting tagba required a:p value,@avoid false matches on commonKs such asTcC{
}. >all0eri\fnames andps. Specthe listYof filter<,s =B as:/# - keyword arguments, as in C{(align="right")}, or8a explicit dict**} operator, when an is also a PythonY reserved  **{"class":"Customer", "#":#}}K1- a1 ofs-e tuple( ("ns1:X&, Y!),"2:_,_2) )`'Foeasa pace prefix, you must use second form. [rid insensitiveupper/lower case.82 @If jn1tesf,1} (h!orGout !),m&Cn}bTo verw!at+@exis?"bu [smaU, pas#e.ANY_VALUE}'7Example: html = '''@
Some tex+* type="grid">1 4 0 1 01,3 2,3 1,11>this has no=)n div,div_end = t("div")lDb# only@ divB hav q% =F().setParseActionZ(XU)5AR_exprF_ + SkipTo(|^p)("body:2p_headerQ.searchString()+>aprint(1@.`# construc"2@ anyD , regardless_K@any_% Ob1`ZV_ecE"bSa0>`}sk 1 4 0 c1 0 1,3 2,3 1,12""" if args:/qattrs =2[:]Oelse$ttrDict.items()-B[(k,v) for k,v in Sdef pa(s,l,tokens)a4-PName, UValueC*0ttr-@ not'S (,raise ParseException"no matchingibute " +]Gw!= withAttr9.ANY_VALUE and [JA] !=W=Cb '%s' has v, must be2" %(],,)return pa = object *pClass(cn space='' Simplified version of C{L{Lqv}} whenon a div ir - madedifficul*cause C{&} is a reserved wordOPython. @Example:html = '''#oZ
Some text*="grid">1 4 0 1 02>this <div>A"noy6| div,div_end = makeHTMLTags("div"<B' =a().set!Ac+x<~BR_exprG_ + SkipTo(|_x)("bodyi2p_headerQ.searchString(aprint(1@.`any_type KQM_\ES0>s@<9q = "%s:6" %:7 if " "&K Y2(**Z: })opAssoc = _Constanth.LEFT JRIGHinfixNota0 bapr, opList, lpar=Suppress('('), rD)') ' Helper meth\od for constructing grammars of expressions made up of operators working in a precedence hierarchy. O.may be unary orM bi, left- or right-associative. Parse actcan alsoMattachedM%to. The generated pObr willIrecognize the use P of,entheses _vverridehs (see example below).J Note: if you define a deepPQlist,!0Qperformance issuesNpwhen usinfixNota". See L{6rElement.enablePackrat}aHmechanismpotentially improver Gser 2. AParameters: - baseExpr -0 reWa!ngl@most,Bic eDnest - opList - !tuples, one4FeachG` level3the!; AV! iz50(op, numTerms,PLeftA,&A), where A_\ pyof;~{p stringg2ich be0verto a LiteralG%if23, "a gof two)$s,$s separaN03 t'0-w"anumber*b7e (mustB P1, 2,-%3)-bindicatorAtherx# iM^ CY ,iR-}BRants C{op.RIGHT} andSLEFT}  e;%beued with( ` matchZ(thMh( l\1 meube omittedr[- lpaSzCE-par?(default=C{Sup vs('(')}SrS T)TE:Q # siof four-fun arithmeticf i@variHD nam>integer = _common.signed_"30varE3 id#Cfier0:_9 = (f3 | _,7 [   ('-', 1, opAssoc.RIGHT), (oneOf('* /'), 2/?LEF.?+ -.&])l arith_expr.runTests('''!Z5+3*6\(5+3)j-2--11)''', fullDump=Falseprints::0 h [[5, '+', [3, '*', 6]]] 2 [5&3]54 1[[[20!11l2"""sret = Forward(lastExpr = base | ( lpar + 40+ r 1for i,operDef in enumerate(opList) opQ,y,rightLeftDt,pa = (I+ (None,))[:4]termName = "%s B" % YA if \ < 3 else% 'N0G== 3j%ifV s or len(lk) != 248 raise ValueError("if num0s=3 must be a tuple^ist of two essions"k^J32 =@this@.set;( W:if  =U. 91UmatchllowedBy(^+) + Group( OneOrMore('7 ) a(el 1notN% +2{#+2 (E 1 2\\ G\/seSmEatorunary (1), bi 02),2ter(3): ;# try to avoid LR with  extra testKfot isinstanc, Optional}g% =)e matchExpr = FollowedBy(op .e`+ this) + Group( ! W ) elif arity == 2:)$ifFis not None(,@last$ +K'OneOrMore {?els':), ) I3!1223\ \W!raise ValueError("operator must be unary (1), bi 2), or ter73)"g indicate right\left associativityc[if pa.setParseAction( paV<<= (7Name(term E) | y=@ret U!urn ret _Precedence = infixNota """(Depred) Former name of C{L{2}}, willdropped in a future release."""(dblQuotedString = Combine(Regex(r'"(?:[^"\n\r\\]|(?:"")!\\ x]|x[0-9a-fA-F]+)))*')+'"')F""s^benclosdouble q~s/sg !"'q'/'' o")+"'" IsingA|o3 u  leN y}unicode`_L('u'Pw.copy()R@ pliteral def nested,(opener="(", @r=") pontent=, ignore1=zBHelper method for defin{x lists ~!1and2ingPdelimps ("(" !")" are the[`ault).>~Parameters0 - ^#er gcharacter for a nestBed list (default=C{"("}); can also be a pyparsing expression - closer - clo$character for a nestj)jontent -ditems within thesseNone})ignoreExprT@open5anddelimiter^quotedStringfhXIf anis not providedcargument,K~ will capture all whitespace-$d Sbetween "rsQBas aof separate values. %1Use&C{0$} to defines that may#ai/L%orK.4ashould"pbe trea=3as <Apning, such as  0com`JT. Specify multipluan C{L{Or}}N MatchFirst}}.V0TheUh is L{}, but if no50areO2be j"d,Nthen pass C{4%isExample::;data_type = oneOf("void int short long  float double"* decl_ICombine(+ Optional(Word('*'))C id!= alphas+'_', 1num1number =_2on.arg = Group(!+ xWLPAR,RPAR = map(SupP, "()Xcode_body =T-('{', '}',(=( | cStyleClWP_func, =[ ("6") /Y("nam# +   dList(arg), [])("args") + x (""kc.(V psource_Wf = '''Spis_odd( Ox) {return (x%2); }QU Xdec_to_hex(hlAif ( >= '0' && o<= '9'6w2 )- M'0')0o} elseO010+GRAR 2} }  Q'''  for func in c_ tion.searchString(source_code):;Cprint("%(name)s (%(type)s) args: %(Q)s" %h2) B:'s:Pis_odd (int>[['int', 'x']]9wdec_to_hex/@char0h 42"""=if opener == closerraise ValueError("-qing and/ ss cannot be the same")fcontent is Noneeif isinstance(arer,baseX)l""M cif lenJ)1D=K)==159ignoreExpr (= (Combine(OneOrMore(~K+8CharsNotI++ParserElement.DEFAULT_WHITE_CHARS,exact=1)qbQ).setR Ac(lambda t:t[0].v?p()J8elsM empty.copy()+'3#C F~Literal%+ /) H:Ei@arguQs musings if no expressionTgivenret = Forward(.9<<= Group( SupdCZero  | ;|6) +> 9t.gh ret.setN,ame('nested %s%s expression' % (opener,closer)) return def indentedBlock(bStatementExpr,"TStack r=True):T2""" Helper method for defining space-delimivaation ts, such asLthose used toHe*$ s s in Python source code.Parameters" -C ' -:jyntax ofpR that_is repeawithin the3"edo3-J - list cr=by callerTmanagF%sIy (multipleXWithI#s a single grammarVshould share a commonJ UQoolea&@icat?rwhethert must bPeyond, ~=current level; setQFalseU0left-most>" (default=C{$})cA valicontain azast one C{n1}]Example:[ data = '''c4A(z,&A1! B = 100hG = A2 3B mBB(a,b,cr)BBs)*A(%Y bba( ~C~D `spam(x,ydc\ eggsG pasM":DV= [1]vstmt = Forward(7ifier = Word(alphas, Dnums funcDecl = ("def" + iB+ Group( "( OpEal( VList(2) ) + ")"+:"ls_body =gr 6TDef =+R jrvalue!>0Cal W)U << (_|G||8`assign =u^7.m'| K z bmodule1= OneOrMore(Q )parseTreD5.pString(3p.pprintp s=[['def',J 'A['(', 'z', ')e'], 9':'[['A1'], [['B', '=R100']G"A2' , ['A3']]_CnZ['defp:'BB0['(babc)$BBe` 'BBA'PA 2bba,Q'bba2  C)'DIspam% xy#[[Yf 'eggsz>3@passvR]]]] D2""" def checkPeerIndent(s,l,t):!if l >= len(s): return curCol = col(l,s)3if A!= i`Stack[-1]bf+>* . raise ParseFatalException"illegal nesting" > 9not a peer entry:+?Sub*   '.append(EKelseB?sub"Unv>8Bnot(ZD and<  .(2]3n u1.pop() .NL = OneOrMore(LineEnd().setWhitespaceChars("\t ").suppress()INDENT = (Empty() + G!AcsH)gbName('E'SPEER =H HBU @*UN#iftsmExpr = Group( Oal(NL) +Yv #~ FollowedBy(blockStatementF 1F + ( +pE )R 7,@.ignu_bslash + 4q L,1ed T alphas8bit = srange(r"[\0xc0-\0xd68 f f f]") punc8bit = srange(r"[\0xa1-\0xbf\0xd7\0xf7]") anyOpenTag,anyCloseTag = makeHTMLTags(Word(alphas,alphanums+"_:").setName('any tag')) _htmlEntityMap = dict(zip("gt lt amp nbsp quot apos".split(),'><& "\'')) commonHTMLEntity = Regex('&(?P' + '|'.join(_htm}.keys()) +");!"cZ  Gdef replaceu(t): """Helper parser action to6 Xies with their special characters"""^zreturn >r.get(t.# it's easyy0get[!se{ent structury`rong -!y're very(on, so may as well )m available cStyleCommZ= Combine(r"/\*(?:[^*]| !/))*") + '*/')@"C sI|0entl"V ofw form C{/* ... */}")$= wgBi2-->jrestOfLinefr".*").leaveWhitespace(5 of linedblSlash//(?:\\\n|[^\n]'///!//t(to endv)?cpp)+| ?C++ deither)L{5}} or C{L{b}Kjava p "SameG GkpythonI/#s!"P, 4the#w_asepitem OneOrMore>PprintRs, excludeChars=',') +b OpkPal( W@" \ti;U~Literal(",= ~aEnd() p.stream@Item SeparatedLispcdelimi&( edString.copy() | 7, default="") yj"""(Deprec) Predefined express@of 1yUmore ` words,tings, s" b"1as.\HThisYEis d~ in favor@L{py1ing1on._\q_list}. # some o=gusefulis - using lower-ca`lass n since we are really using &this as a namespace class pyparsing_common: """ Here are some $, low-level expressions that may be useful in jump-starting m@er d=copmentq - numeric forms (L{integers< >}, L{reals< scientific notation}6network addeMAC} andItimeL{UUIDPA(K )Hfprint(N!eSC("1999-12-31"84s[Eh(<, 12, 31)]c" vt_fn(s,l,t;try6Wretur`(t[0],) except ValueError as vebQaise WE5 io l, str(vec - T%H:%M:%S.%fAr!#m%E 1t/ 3@1N(#(dP3T23:59:59.999@xD, 23, 59o999000X_QYa = Reg(?P\d{4})(?:-month>\d\d2dayH)?)?0ISOl( (C{yyyy-mm-dd} @[T ]0hou\d):(?P\d\d)(:(?P(\.\d*)?tz>Z|[+-] :?)?').setName("ISO8601 datetime") # (C{yyyy-mm-ddThh:mm:ss.s(Z|+-00:00)}) - trailing s, milli@and jzone optional; accepts separatAC{'T'} or C{' '}" uuid = Regex(r'[0-9a-fA-F]{8}(-i4}){3}812}EUUID x- %})_html_stripper = anyOpenTag.suppress() |ZClose@staticmethodAdef VHTMLTags(s, l, tokens):&&"" Parse ac\ to remove E tags from web pagdsourcebSExample:f#NClinkOnormal text 24= 'More info at the pP k'rpd,td_en&@make?%"Tctable_td + SkipTo(B,QAP(_common.)("body") + A fprint(.eString( ).N) # -> '= "ureturn 2 .transformjD[0])9 asepitem = Combine(OneOr(~Literal(",~LineEnd(QWord(xs, excludeChars=',')>3+ OA( White(" \t") @eamlTaItem_y ed_list = delimitedList(jbquoted!Q.copy , default="pl0ed l"""Predefined ex7ion of 1m=<` wordsGngs,_1by r!s. ~qupcaseT8 = w(Z Map(lambda t: _ustr(t).u4())#!"" isconvert{4 p@down_lower4 if __name__ == "__main__":aselect@= Ca%ss$ctT.  0".PidentZ!= alphas, nums + "_$7 columnNa0me T= delimitedList(ident, ".", combine=True).setParseAction(upcaseTokens) columnNameList = Group(ac%)TbName(")s"J@Spec = ('*' |bA) yPtableI. 9[/ %simpleSQLaselectFmmand") +QlumnsAfrom/1 + b!("qm# demo runTests method, including embeddedments in test stringH.KB(""" # #as land dottedV name40 * SYS.XYZZYWa less match on "SELECT", ` caback to "T-eaZ, ABCf$ofs`0mixCase KvkeywordS AA,BB,CCzys.dualhmultiplesD[, B, C0, T2K{invalid - should fail`X` X co!tedT >?@ ^^^2?x S2 ""pyparsing_common.number21007G-+v3.14159-v6.02e23V1e-12# any int or real , returned as floatA f1j hex_integ_"FFkimport uui. i UtokenMap(SUUID)?12345678- -  # This file is  licensed under the terms of Apache L', Version # 2.0C44BSD$Q. See<sLICENSEqnBroot\is repository # forplete details. <__future__ tabsolute_`, divi, print_funct*ion from .__about__ import ( __author__, __copyrightRemail rlicense rsummary @titlO2uri version__ ) __all__ = [(3"__8e", "__RE G$",H ", ] # This file is dual 3d under the terms of Apache L2, V # 2.0, and'4BSD$Q. SeesLICENSEqnBroot\is repository # for complete details.__futureabsolute_`, diviq, print_funct"S abc DoolsXitert%re9$at7 string_types, with_metaclass.21, Legacyparse ; InvalidSpecifier(ValueError):!""BAn i-$ s. was found, users should refo PEP 440.C5"""yFBasev (abc.ABCMeta, object)): E@abstractmethoddef __str__(selfnxqReturns0str presenta"S like.nK)beE"veE&e D it:G Ohash a , vtqy#eqd, otheBYa booleanping whe=q or not7two$s are equal</nekpropertyprereleases YDpre-? as a wholeJallowed by rfq.setter8,zLSets>rcontainU`, itemm_=None Debines iQgivenEcontained within this specifier. A""" @abc.abstractmethoddef filter(self, iterable, prereleases=None):2ZWTakes an:0 of md]s them so that only$UwhichYare contained with $allowed iw  class _IndividualSU(Base"):_operators = {}__init__`?="" match = M._regex.search(?)qif not 0YQraise Invalid#(": '{0}'".formata)IwE = (zw.group("").strip(),-version,{# Store whether or should acceptp) =()Crepr=pre V{0!r}EGelf.q8#if"1 is$)uelse "" return "<{0}({1!r}{2})>4H___.__name__"st 6pre(0/st/V{0}{1*K DNhashtE:-._9#eq70, o!if isinstance( , ng_types,:try@7;N !ex}]SNotImplementeDq#elR_ V2 ==2U/neT&!T5getG, opSgetat, "_compare_{0Ckhs[op])Lscoerce__mrfsinstance(version, (LegacyVe W)): v = parse()%sreturn  @property@def ator(selfc>._spec[0]DcC1CprereleasesG (:u.setter-Uw, value(" =$]!__contains__FGitemE+,($Fr , ', xH=Non# Determine if* are to be allowed or not." 10is ^ ?|0 = .L# Normalize{#a z Bthis@s us.Ehave# a shortcut for ``"2.0" in Specifier(">=2"._coerce_t) 8 wen0uld/supportingP1in Z,Pwe doh H Ethan we canrrt circuitMPlogicKo /K F.is_A andsXFalseActuallythe comparisondo|'edDwith8 ]Y_get_m.)-,Rfilte9_rable= yielded = WfoundLSs = [ wkw = {"Z(":1not] else True}t`ttemptaiterate over! s#1bleif any ofwthem match, Em2QATP /dAXG"if*s(Mg, **kw4# If our;a[,qwe were!se6K#; s,}'ll stor\later incasUOhingLV+es [w;if  h=(Bor self.prereleases)): found_prere).append(version)6# Either this is not a C , or we should have beenJaccepting?s from th6}gining.;Oelseyielded = True9#  #(# Now that we've iterated over everything, determine if-U'edNany values, and+3 nd&+As stored upO@then1will go aheadY{1D4!if&e2  L4forO in . S class LegacySpecifier(_Individual"):_regex_str = (Er""" `(?P(==|!=|<=|>=|<|>)9\s*4>[^,;\s)]* # SinceAa "l4" sM LPP# strcan be just about an?we matchTO ex# whitespace, a semi-color marker support,P`a closqparen s#s en&Ned iBthemsa commaLeit's aAseparator) = re.compile ^\s*" + ,+ r"\s*$",4VERBOSE | IGNORECASE^<Us = {""==": "equal"9!"!Mnot_<less_than!>!greater$=}&def _coerce_d(self,tisinstance,V W* =&D(strApdreturn~ mf 0proVQtive,`I#@ == .3pecko#!o)= self._coerce_version(!0) 9def _compare_less_than(7,L!, 5:59oq  erequirB(fn)@functools.wraps??pedif not isinstance(2, V{tAEQFalsetf+< class Specifier(_Individual"):_regex_str = (P{5""" (?P(~=|==|!=|<=|>=|<|>|===))/a>U"(?i # The identity gs allow for an escape hatch that will]QA# do/xact string m5sof the you wish to ?ll.OAThiskbe parsed by PEP 440 and we candetermin# any semantic meanfrom it. k is discouragedbut included =qrely as.@(?<= # Only!j"  }=\s*b[^\s]*sWe justXeverything, exceptwhitespac*Fp# since`Pare oAtest9!or%ct> M|(non)equalwild cardOlocaisa!be4@d so@have`defineise two#pseparatto enabl;*at7@|!=) 4d4-v?(?:[0-9]+!)?7}# epoch.+R(?:\. )@w# releaFT (?: _# pre4)n[-_\.] (a|b|c|rc|alpha|beta|preJviewD2R  )?ost A(?:-g+)|(?:[-_\.]?(p ost|rev|r)[-_\.]?[0-9]*) =)? (# You cannot use a wild card and a dev or local versionHtogether so group them with a |MBmakeoptional.J=(?:3(?:3dev ? #releaseG`\+[a-z%+Ub)*)? #A|\.\* # W=syntax of .*3))?  b# The compatible operator requires at t two digits in} z6## 1 segmentP<=~=).# Only match for^w.\svh&!) # epoch"\. 0)+  (We hav+ instead/a .0(?: T# pre0 - (a|b|c|rc|alpha|beta|preJviewNR L `Fo# post A(?:-w0+)|u(8s H  9AQAll o<0s oallow a sub set @what # (non)equalitys do. Specifically?Py do hcM cs to be sF`ed norBQthey CU?fixN6ingsx!==|!=|$# *~al cases[ #so we want 1sury Gs# don'tq_here.[f*[ m=7pha|beta|pre|preview) [-_\.]?]0-9]*).?(?:\ # post releaseX/P(?:-[wc+)|(?:(8s|rev|r)%*53dev ??t_# deve 1"""!) _regex = re.compile(\r"^\s*" + '_str + r"\s*$",4VERBOSE | IGNORECASE^operators = {Xp"~=": "patible",=Xequal!Mnot_<less_than!>!greater$<Dz>==arbitrary}^@_require_version_rCDdef  (self, prospective, %):%b# Comp<s have an svalent combination of >= and ==. ThatPis that ~=2.2 isE@to >`,==2.*;is allows us toHPmplem{this in terms}the otherPifier!stead ofEing it ourselves|e only thwe need to doconstrucy.# We want everyY@but 8last item3he  , "w9 Rgnore2ns6 tiCpre-`8 as t's own separate segb.%Pprefi".".joinJlistitertools.takewh!lambda x: (not x.startswith("!")&nou<  <fdev"))-1asplit(*<e)[:-1]T# Addg+2not!to eniu stringF\v+= ".*"6qreturn d._get_~(">=")(&X @=@)W-R WKkial logicYrhandle P matc{!ifC.end7.*"A# Inh@case  M o ignore local segment. prospective = Version(.public)6# Split the ? out by dots, and pretend tha're is an implicitP dot in between a releaseUaW- B= _v _s([:-2]) # Removetrailing .*  X P + P (tr-))ahortenBto b8same length as1d owe can determine if3QifierQfix o K_or no 6Q[:len ,)]1Pad our two sides with zeros sthey both equal;ame', t = _pad !s[else:dConvert {@ strdinto a 5' I}@doesg have a locL,n we want topP# actH_also d K!if. &uqjreturn=9@_requirer_comparDdef Q_not_+Y(self,R)w@not -.EA;less_than|& --# qh instance, since we'llQ workPd1# iaR.Ve# Check to seJ[is less than the spec 6# version. If it's not we can short circuit and just return False nowNinstead of doing extra unneeded work.0!ifn0proative <:#p a# This/ial case is here so that, unless ifier itselfIincludes@a pre-releQ,O!dohaccept+O5Qs for{ mentioned in(e.g. <3.1v7uldPmatch 3.1.dev0, but) 0)_et.is_prev  }Bif V#(2Sbase_E) ==%n  P If we've gotten to, it meanav0Gboth6ajf *and* "of7ameNhOiBTrue@_requir#r_comparRDdef _greater_than(', h,)C# Convert our&a ance, sincePpll want(9 wi(4s a )p# CheckVRsee i6QF@^u>YuE?ostHp6K>lk!2.?ost  Y`Ensuretllow a local2#N p, whichtechincally (,[p(if.iONone0sion(prospective.base_version) == V Z(spec;: return False # If we've gotten to here, it means that prof is bothMpgreater3`n the 40*and* it's not a pre-release of1LEsame;iO.$3Tru def _compare_arbitrary(self,,)%JGstr().lower(lE@property3preszgnt_<an explici_5p set foE0is,nqll justg# blindly useqt0if '._rvFNoneJ9elf2"# Look at all1ourCifiers and determine iy are inclusive0aators,9 / ;Wding )G[,9= =4if * in ["==", "><~Z==="].P# The}RB cande a trail0.*, it does wT@wantoremove before parsing-0== <.endswith(".*"q<($ =V[:-2]$Q# ParKw it? 0tha%isWFhallowss#e(G).is y^@s.setterw, value5;=$0 fix_regex = re.p ile(r"^([0-9]+)((?:a|b|c|rc)`$") e_splitresult = [] @item&.8(".match = .search(A)O01if .qy.extend(!.groups()<=els>@.app8jW4pad(left, right}  ,P# Get g segment'T@listrtools.takewhlambda x: x.isdigit(), B)O%CP sns left_split.append(left[len _[0]):]) right23 45# Insert our paddingm0!.i"(i%1, ["0"] * max(0, j! -O)Bk Uj kvreturn list(itertools.chain(*Y)@,p- ) class SpecifierSet(Base1): def __init__(self, s5 s="", prereleases=None):90# S! on , to break each indidivualP into it's own item, andPSstripB0temUremove lea/trailing whitespace.Aa = [s.O() for s in!s.(",") if ,]cParsedindivid, attemptPfirstmake it a)A fal@back2a Legacypb= set( ):tryUU.add(s(=)g-except Invalid0V \Tito a frozen9save themVlater+ ._D3s =:6)RStoreu value so we can usgdetermine ifQwe ac$,| or not"=\CreprnWpre =< {0!r}".format.q Welf._"0 is huelse ""M%"<mV{1})>!tr)TB/stY,".join(sorted(sG)UNhashFV1 :3and9w, otherif isinstance( , hng_types,:"* =AelifxZU ZNotImplementedGy }x#6ozenset(self._specs | otherC) if self._prereleases is None and8 1not#:IPl0ifih0=E8/eld  =m0*seEraise ValueError(S@"Can combine SpecgSets with TrufFalse ~. "Ooverrides.ureturn 1def __eq__(O,)if isinstance(s, string_types,") =7)!V_Individual^3strb cbg\;Set_$NotImplemented))w SYs,U/neU&! U3lenV1lenOiter9:@propertyHs0# If we have been given an explicit1mod, then we'llgh # pass that through here."a P "Rdon't6any-!s,8we " forced v,#c just ` since*Jknow if this shouldNEpre-ior not /{O<w{@ seeoeRs accept,=Bm do]v!gany(s.b s in self._spe cs) @prereleases.setterGdef (self, value):">'._(" =$]E__contains__FGitemEqreturn L,($F& , ,H=Non# Ensure that our3 is a Version or Legacyinstance.if not is9, (9,S) = parse:u# Determine if we're forcing aFnot,&*A# on@P thiss ticular filter call, thenlll use whateverKSpecifierSetP0nks whether we should supportsE"0is E!= (# We can d= go;to allow- by look!!se~`any of underly*ss@m. I#ne/Gm doO0and0sn4preB~@ do 0it 7wL shR`circuigat her# Note: T@meanat 1.0.dev1 wj3be Bed in somethingp_ like >=Dqabc how##itQ beC$rbabc,>0t0P:S7.is3  [Falsesimply dispatch toPQspecs%Vmake 5the# given v 'is wiE sA of)"()van empty setHSsswill always @True!isn explicit desig ci:Eall(b`#s.s 6)6Pfor sp ._]Zrabled&I$` have P(P wantDwrapthe # 6filter method for each one, this will act as a logical AND amongst #;specifier.  if self._%s: s? in%)iterable = 0.(, prereleases=bool()))utreturn <# If we do not have anyqs en$sneed to%r rough PRwhichEA outTDpre- , unless there are no finalL.Oand ZLegacyVersionTvgeneralKelseued = []ptgfound_H# $rImmQ `J# Ensure that?some kind of Qclass|FitemG!ifisinstanceIm, (,U.))Gparsed_v+!= L --56G "'1# Ff'"is|dd I7if ~), <continue0Sto"nydi la8]we've# already H" a s or accepting P#if(7.is B/ed%cs.append&k @ |3've/!no@s exvk'll goMQahead usve[q - 5 Z{ is NonK5] B p&`ed # To@file[dual licensed under` terms3the Apache L'q # 2.0,'4BSD$B. SepLICENSEe)Broot\is repository #|#complete details. from __future__ import absolute_`, diviint_function Infinity(object):,def __repr__(B@";"3Ohash3hash(repr(self)) def __lt__(self, other):!return False3e3/eq3 isinstance( , .__class__nOnot Sg9Trug 23negfNegativeInfinity 4 = Q()  0(object):Oreprr$"-W"4Ohash4(V3J lBH PI 3J , $. =7") # This file is dual licensed under the terms of Apache L', Version # 2.0, and'4BSD$Q. SeesLICENSEqnBroot\8is repository # for complete details. from __future__ import absolute_i`, divi, print_funct 2operators platformBsys xpkg_resources.extern.pyparsingParseExcepq!, Results, stringStart ?End`ZeroOrMore, Group, Forward, QuotedSdTLiteral as L # noqa ._$atb_typesc.specifiers%S, Invalid __all__ = [t"$Marker", "UndefinedComparisonEnvironmentName",HAdefault_e)E", ]F r(ValueErro1"""RBAn i! m was found, usshould ref0o PEP 508.@Hy1ion|attempted on a v that doesn't supit. """ cl"ass UndefinedEnvironmentName(ValueError): """A name was attempted to be us hat does not exist inside of theFeo._@ clNode(object): def __init__(self, v." =;3str:3return strT>)7?rep8"<{0}({1!r})>".formatJ!__P__.__05__,g)bserialize7aise NotImple!ed &Variable(/(T )K/luHx'"{0}"'S/Op*VARIABLE = (DL("i ation_version") |"@plat_python_2* @Ofullh yrelease; omachin8isystemSQDsys_2-os0os.& # PEP-345:Hsys.I#.' ' k , bundocu* setuptools legacyextra") ) ALIASES = {'"C': '@"',w$ (D ,$ ,|D. :"HE h?4 } .setParseAc(lambda s, l, t: [.get(t[0], )VERSION_CMP0===o:L("><!~>S< MARKER_O~P| L("iR 0 !Opd@VALUQuotedString("' D'"')i5l oABOOLaL("and`L("or") WR = VARIABLE | MARKER_VALUE MARITEM = Group(cVAR + &OP HVAR)9<.setParseAction(lambda s, l, t: tuple(t[0])) LPAREN = L("(").suppress() RP)pEXPR = Forward(0ATO|qC"+ mA$<<P+ ZeroOrMore(BOOL1)A = stringStart+%# +End def _coerce_p6_result(s): if isinstance!, hR1*.return [Yi) for i in e]dBelsenD"format_marker(, first=Truehassert+b(list,, `_typesy# Sometimes we have a* ucture like [[...]] which is"ingle item e# where the s!is itself it's own4. In that casewant skipOIrest of this fun2 so: we don't get extraneous () o]eJoutside.Gif (.) and leno`) == 1:3 >X[0], o#))/#_ ] w *inner = (MRFalsevmvH)b"ifBS" ".join(g5 1[(" + 7!)"r/el"I[m.serialize(]  _operators = {c"in": $lhs, rhs: lhs*Brhs,'Onot +;/D<": m4.lt=e=#eq!n.>g[Tgt, }4eval_op(!oph6tryspec = Specifier("8[op{A=except Invalid<VApassCt.contains)<6 = Z.get(!ifi8NonA aise UndefinedComparison(""` {0!r}% {1 {2!r}.".(>G2rhsCn')vu = object() def _get_env(environment, name): value = P.get(#, _undefined) /#if2'isKOtraise U6EvQName(D( "{0!r} does not exist in eYationr".forma)Kbreturn def _Ie_markers(,X groups = [[]]Bfor 2 sassert isinstance_, (list, tuple, string_types)/if<;%[-1].append( $/elm nlhs, op, rh M1tVariablW&@lhs_gN_getAlhs."=r=r'&Felseu_ 8&^t:E_op({G)Mno["and", "or"]$if!==.#[]$any(all(item)  u8)@o_full_version(info1 = '{0.major}. %in Tcro}'<pkind = .releaselevel1if != 'final't!+=$P[0] +ar.serialg1adefaul(if hasattr(sys, 'imple0''`iver =9:matJsys.9.? Y_j? = : /1'0'S1'' " { /"?": ,477ver($osP0os.@platV_machine": ./()0%00hsystem/. 0Yythonbp:$ jE !g<version()[:3],  "sys_platform": sys. , $ } class Marker(object): def __init__(self, m(!): C6try ("._(s = _coerce_parse_result(MARKER.rString(2%))Zexcept P8E ion as eqerr_str = "Invalid: {0!r}, g error at {1!r}".5at(pq[e.loc:V + 8]-craise xE)E3strD<return _4iA E?repF#"<%)>1strT)Levaluate, environment=NoneC"""E-# aY.Rthe boolean from a@ing Sgiven> against}. is an optional argu to override all orLppart of` determinedV8Thep4current Python process.t5""" ,_ = default(L,if@not  \@.updodefsg/, Y) # This fileual licensed underecsrApache L', Version # 2.0, and44BSD$Q. SeesLICENSEqn3roo is repository # for completeaails.  __future__ import absolute_`, divi, print_funce" " re _canonicalizgex = re.yile(r"[-_.]+") 1 1Pname(RQsis take,rPEP 503M Gregex.sub("-", Q.lower(Qcollesitertool.( ucs0Infy_all__ = ["8C", " gLegacyVERSION_PATTERN" ]]!7 = .bdtuple#"_("p["epochzprelease 0dev!prpost", "local"], ) def parse(version): """P the given & string and return either a :class:`VQ` objectOo!kLegacy'p depend]_on if|!isLa valid PEP 440dl\.12try1except Ini# ; A!  >(ValueErrorjBAn ii was found, users shoulrdfer touS_Base(1): __hash__(self h._key)8#lt60, o=S._compare(%, lambda s, o: s < oVeV2=W/eqW1=Wg2>W[2>n2! , methodif not isinstanc0NotImplementedk{  u 6ini|#._ =%rkey = _~s_cmpkey@ 3stroQ6?rep6*"<{0})>".format(;A(str#))@propertybpublic& BDbase3H)_localABNoneis_prerelease@OFalsA ?ostB onent_re = re.1Aile(cr"(\d+ | [a-z] \.| -)",+VERBOSE, ) Yareplac_map = {R"pre": "c", Eview- final-", "rc": "c", "dev": "@", } def _parse_versionts(s): for part in _legacy*component_re.split7;7=6replacem8map.get(+,h!) w@aif not b== "."$continue:R@[:1]"0123456789;Q# padnumeric earisondQyield.zfill(8) Jelse.Q"*" +4$# ensure that alpha/beta/candidate are before finaldN"scmpkey(# We hardcode an epoch of -1 here. A PEP 440 ; can only have a4# greaternequal to 0. This will effectively put the L3V\,Owhich uses$defacto standard origqly impl,ed by setuptoolsL$as2[0-9]+)!)?##?OAS(?:\.L *)$ 0seg $L@pre> #-H<b[-_\.]`_l>(a|b|c|rc||@|preRview)5M n)l s?ost# post D(?:-Q4_n1y | (?:  [-_\.]?  (?P}|rev|r)'?n2>[0-9]+)dKuBdev># dev release`f_l>devi/ nDP(?:\+\local>[a-z2(?:WP)*))?oQ # / version """ class Vc(_Base 1): _regex = re.compile(Xr"^\s*" + VERSION_PATTERN + r"\s*$",-e.VERBOSE |NIGNORECASE$)qdef __init__(self,%):L# Validate the! and parse it into pieces8match = X..search(dqif not 3zraise Inv0#(": '{0}'".format`Hb# StorSd out8 ofD = _"[epoch=int(.group("b")) if r else 0Hp=tuple(Ti) for i inG+").split("."))NQpre=__letter_Wu kpre_l"M&n& 5b# ^'zn1") orz<_n2B ?dev"?dev"&" +g (  PGener a key which will be usedFusorting1= _cmpkey!6. c !# ?pre ?ost ?dev &!#Creprreturn "<U{0})>K5A(str)))Q/stPparts = []d0# E$w#if YZ != 0M.append("{0}!yion.epoch)) # # Release segment&parts.append(".".join(str(x) for x in self._version.rL5)) Gc# Pre-+if:pre is not None:* ;pre?ost?ost.post{0}".format( :[1]pDevelopi ?dev?dev=devcLocal   l/ ("+Lr)))MXreturn "#@property<def public)[C).split("+", 1)[0]ODbase UC = [>q# Epoch ^eV != 0)MO{0}!mA kL= *|_string = )0"+"h - & # 1cis_pre [Abool.orh?ostiH@) _parse_letter, number2if ,# We consider there to be an implicit 0o6a p3 if.%is#au eral associated with it., if'0berB = 0qnX0lizystheir lower co# =2.((] some word[lternate spellings of o2)5ando#1Qthoses we want(thO`to oureXferreMt ?= "alpha"E "a"%el == "beta":  letter = "b" s elif in ["c", "preuview"]:08/_= "rcJ0revEr?epost" \creturn, int(number)#cif notR and # We assume if we are given a.T, butPj# then this is using implicit release syntax (e.g. 1.0-1KZy32 _local_version_seperators = re.compile(r"[\._-]") def _parse_>()*"""Takes a strlike abc.1.twelvec@s it`o ("ab!B1, "%1").3UN4^BNonew atuple(8part.lower()<isdigit() else(^>@for O in 8c.split }7cmpkey(epoch,a, pre,x, dev, J0# W$0we la9 ,kuwant to&it with all ofVp# trail zeros removed. So we'll use d^e9 list, dropOsthe nowPFleadOPuntil@come`someth!@non t,TRn tak^CrestLRre-rexpit backo1 correct order8mBQit a 3useLPthat our sort2keyLT=<) d(itertools.  whmlambda x: x == 0,"b)#v) )y@needVq"trick"algorithm!0put#.dev0 before"a0Md\is by abpre segmentt_only_ h:#NTthereaQ or aM1. I3have one!os nL_Ermalrules will handl0@is cl!if{0is 0dev<= -InfinityV@thouqp(except as<ed above) shouldc afterO th2one#~ D4osth |w-7v xout a development seg%hould sort after those with one. if dev is None:= Infinity if local.# Versions_Sout a,obefore|e5= -7els r oneed tha@parspo imple$\Q# the+ing rules in PEP440)'- Alpha numericms< g@ lexicographically:Ntm .@Shorv ulonger Awhenprefixesy match exactetuple(1(p(i, "")]isinstancePint) % (I, i)>Pfor ib) return epoch, release, pr@ost,,} # This filedual licen 1unde terms ofApache L', # 2.0, anXTe BSD$@. See LICENSEqSBroot\is repository # co te details. from __future__bsolute_impor0ivis int_function __all__ = [>"__title__", "__summary4uri `authorHPemailHJcopyright ]w = "packaging" C utilitiesrPython 4 es3/ https://github.com/pypa/-a5 __3P16.8"Donald Stufftaindivi%contributor~8d8!@s81.ioY "?or IG/5C> 2014-2016 %s" % __ string 2re +pkg_resources.extern. rs/=0Sta; End, originalTextFor, P'QExcepMcZeroOrMoqWord, ODal, Regex, CombineLiteral as L # noqa@esources.extern.six.moves.urllib import parse as url from .markers(MARKER_EXPR, M)wspecifi,tLegacyS/, $Set class InvalidRequirement(ValueError): """BAn i/& r0 was found, us should refer to PEP 508.EM ALPHANUM = Word(string.ascii_lettH#+ digits) LBRACKET = L("[").suppress() R]bLPAREN8(R)RCOMMA5,SEMICOLOS;A@ PUNCTUATI8"-_.") IDENTIFIUND = "| (ZeroOrMore(B5) +&A = Combine(E'+ D l)) NAME = ("name") EXTR! URI = Regex(r'[^ ]+')("url") URL = (AT + URI) CPS_LISQ f!+ sSE+ Optional(%N )("extras") VERSION_PEP440 0._r_str, re.VERBOSE | IGNORECASE)IeLEGACYI fOP ONo $^ o.0MAN|&EH!!),u QjoinSv =",", adjacent=False)("_raw_bD") _SfSPEC =#((Y+"+ V9) |)LP.setP Ac(lambda s, l, t: t.g or ''originalTextFor(0)("%";{g[1]) ~< = mR())("(")7 i d(s[t._ex_start:eend]) _SEPERATOR = |3 = &+M(BAND_,% =$ y!_1(UD_REQUIREMEN\o3H(URL^>s:) U&S-0 + ] wH5Endfobject( a!. Xgiven  into its parts, Lsuch as name, specifier, URL, and extras. Raises InvalidRequirement on a badly-formed rMqstring. A""" &# TODO: Can we test whether something is contained wi( aa?M If so how doVdo that? Drneed tomagainst the _I_ ofNrg'@wellversion? What abouGtmarkers normalizeqp`?def __init__(self,_L!):6try  req = REQUIREMENT.parseS&(rLKexcept P/E 0ioneb  (J"0!,  error at \"{0!r}\"".A.atHLq[e.loc:r + 8]))D/;.g=~ !if:urld_url = url. = )Hiif not (,<q.schemenetloc) or G0F J rURL given"/0req;els-ENone*2a = set2.asList() } ^6 []ED = SSQ 5  mml3strkWparts = [H]\1if  9.append("[{0}]",".join(sorted.E())ad2strI-J%tsU@ {0}?urlIJ.";L5Oreturn "6?rep7<(?&)>)) # This fileLdual licensed underterms of Apache L'2, Vb # 2.04BSD$B. SesLICENSEqnPBroot\,is repository # for complete details. from __future__ imporgrsolute_`, divi, print_function " sys PY2ys.version_info[0] == 2 PY3 = sys.version_info[03 # flake8: noqa if PY3: string_typesEtr, elseBbase1, def with_metaclass( 1, *()C1"""iCreate a  />0 a 6.*2# This requires;it of explanation: theSic idea is to makkQdummyT#e for one levelP| instantiX that replaces itselOwfactualZN q6 __new__(cls, name, this_Gs, d/3areturnh(.) .[, 'temporary_', (), {}) it;1  VendorI*erA PEP 302b path C!erWfinding opaally-vP!edztherwise natur${ lled packages from root_ZGDpinit__(,+$, r: s=_pkg=None`>.h& =Ij#B"edU*:et()2t# = &ord.b('extern', '_V1') P@propertpsearch_~"S'a first&Xc0n aWmCOgyield Q+ '.'0$"''q_module`, full,? rRsU when;r starts?0andrtarget ~e*Qroughyc,eU=`.partiL!ifR.if not any(map(.k,)Tc9OloadM@Iter@overf r0loc\NR3prefix in. i:try* ex3 = F"+ r%"__2__(40mod2ys.q"s[*]M$0] = ,# mysterious hack:   # Remove the reference toextant package/module 8 # on later Python versionsH@caus[lative importsE!intdvendortBSresolRsame D as those going through thisz=er.|if prefix and sys._info > (3, 3):91del3[4],`return except I^Errorg6pasJelse#XraiseB(b"The '{target}'^is required; "7normallyBs bundled witW so if you getLwarning, consultC1r oAr>distribution.".ft(**locals())!) def install(self&""I#rer intoeta_pathnot already5FsentQU0if s 1*inI qmdr.append names = '%ing', 'pypars 0sixappdirs' VBRPer(__D@__, 4s).") P platQ0 2windows_only(func7'*.system() != 'W1'lambda *args, **kw R: NonG(eH @zhide_file(f"Se?hidden at!e a 6 or directory.From http://stackoverflow.com/quescs/19622133/7`` must be texLRctype"__B__('A.win 'SetFileA*dll.kernel32.+W A.argc6 = K.LPWSTR,_DWORDO0res=NBBOOL FILE_ATTRIBUTE_HIDDEN = 0x02"mret = /, @"!ifA7ret]1Win6() MZ@  !L!T4program canbe run in DOSce. $ZYSj29Q:99F29}929`991919m929RichDWPELQ  N%"@ @q ,( 'X@? .text]5( `.rdata` ""R@@.'0+PT D@ -QD$P@uSUV+WD-jPs 33ۉD$"p~W L$ <\uG <"u~Wj\V< 3\F3T.CF;|Å~+V+!D$_"F^][YÁ A3ĉ$V$W*τtd$A@P F^$3! Wh$ QV虫V,訊$,H@;st t uj$ h@RT tat2  $ v$$$(FL$Q$"R0D$ D$$PV$|$ u Vh@S\$ U$,+D$@jP'Wt$C;~L$ R# @G1|y! 7q~L$5 U5|惼$4][tED$t$ |Vh@^n _9^%sL$T$D$ QRPP% $_^3?4,L$jPQ j h@3u3];;u ;V039u ,8tԉ]SYuC @uwS*Yttȃ *AAA$u)++))@$t)M9uu#SL EPVu SESW E EuLøAá;AVj^u;}ƣ] YY+AujV5)zjX^3ҹX00  A|j^3ҹAW#";tu1 BpA|_3^#=0 Atp!5l ׏ËUVu;r"`Aw+uQ$N Y V@^]AE}P$A2 H0]ËE P32Q;r=q` +Ir#Y]<D@<ME }4h/QeVEPu  u9Etat XM^+T$ L$ti3D$ur=*ae%Wr1كt +шuʃtt ((D$_ËD$L$ W~Sًt$|$u 'Lt+t/*uuat't7uD$[^_Y$tEb"uEt`u[^O'_Ét~Ѓ3‹t܄t,tt uĉ 13V 3XR 3duwuuuu j %=QQS3VW]9]t}M ;u9]uq9]tj9]0u``tY9]0 uO6 tH9]$u>9](u>u3@8tHF;w>:u5;t}jujQ%&Fu9](uE;tu3]8tUP%YtFUVuVSP?L`t|Ё ;u3\@;u`3@ AF uNSW^^N 3_@[3^]ËЃ}t'Vu F XBtVf f&fY^]A @tyt$Ix  QP-YYu  MEM >t} ,G @SVt2u,E+M}C>u8*uϰ?dQ}^[]xA3ʼnES] 3W}u ! #u5M3PNt `p F @u^V@ YAttȃ *AA$u((ȃ& @$g3;]غ! C!@ , If90t@@;u+(;u AI8t,,i L@\'@t2t T- r+ t! 6+ + a uSj p && 4vBYtGuWSj0".Brpqtf~b9 lP PjEPFPF5u(9@t `M>Yu2P*Y$|t "I@ 0Pt p Ypt3t `pM_^3[Ð*@(@)@y)@)@)@*@D+@jThP@e3}EP@@Ej@j ^VuYY;*A5*A0@@ x@$@% @& x8@4@ *A;rf9} n E\8X;E)|EZ[j@j tVM *A 76*ƒ``$ƓD`8;rE9=@Q| .e~mEtVtQtKu Q<@t%Y@uF@ uN")t7F N@Cg5**A4@33@ËeEcËUEV3;uV E@^]2SP A(A3ʼnESjLjP@( 0 ,    f!!!!EMDžjpM IǕQǭ X@jT@ PP@u uj1YhB L@PH@M3[(7 55&Yt]j?d]3;AtA-rHwj X]Ë}DjY;#]@AÃD 0VMQY0^]h7@d5D$l$l$+SVW1E3PeuE^EEd8pËMd Y__^[]Q\AЃS] Vs35TWEE {t N3 8N FRE@fMUS[ EMt_I[LDEEt$1E|@GE؃u΀}t$VsAN V0:F"E@EɋM9csmu)=*At h0!VtUjRM 0E 9X thRӋ{MH "EH]09S RWu0 VW3ukYu'9T AvV$b;uʋ_EPju JE LLJ_,9E tNQ&2O,9ERR+j hp@utu=*AuCjYeV2YEt VPY+ }u7u jYVj5t)`n0 k@\dYjhI3ۉ]jI]j_};=;A}W+A9tD@ tPj=tE|('ы PD@4YdG ,AE@7%SVuF Ȁ3ۀu@t9FW>+~,WPVeYPD( ;uF yF N _Ff^[g`u V`Y/V|@tF @tVPDYY3^]jhO3}}jD}3u;5QRs98t^QVPVDYY3BU,H t/9UuPJtE9}u/u E܉}F3uOa4VMeÁ}EtE{jY 8YËVW3X AW>t~t WW&YhA|*p_t *VuP ^[ËUE4W2@]j h@^3G}39t)AujhYYu49tnj Y;u PQj Y.q]9u, BWt PuW<%6] >WE E3 (|"V>uP"ujtY6@^hM3;v.jX3;E @uWN3M u;u3F3ۉ]wi=*AuKu E;p*Aw7jLY}u5YE_];tuWS6u ;uaVj5d@;uL9=)At3VYrE;P0Eu jA;u ("t"U}}M f$ffG 0@P`pIuЋ}]WWE3+ u;E;t':t!.t:S.F.. vElj"3_^[ uME MUTu}tMȻ`A#EVt3@}tMapSjjuu xB]lAjTuuu s?5("A    5="Af! !!!%-"A"AE"AE"A!A!A !A X@!AjO$YjT@h@P@=!puj+$h\L@PH@-t"t t Hzøø   Q-h3FWP+3ȋ~~~  ~hA F+ο9@Ou@Nu_^C3ʼnESWPvh@3@;rƅ t.;w+@P j Rh CCujv vPWIPjjE3SvWWv SBD!!@hZ1S%p$3EgtLWpt Ƅ PVDž3) 0 ЍZ w Lр w р A;r‹M_3[Oj h8@ AGptltwhuj Yj Yewhu;5At6tVp@uhAtVYAGh.uVl@E&뎋uj YËUS3SM$Au x@8]tEMapEAD;FG;v}FF>uыuE}urlj{CVgjC CAZf1Af0A@@JuL@;vFF~4C@IuCC Ss}ȋ {95$X^!J0hXM  }_huuE;CWp ؅F #SuYYE Uuvh"RFh=$PcY^hS=Fpj tC$AC $A3E}fLCf E$A@=H} L}b@!   4S`0j %u 0St6,eEÃ=+AujVYL"3S0,W;to=HAth;t^9uZ9uP6;AYY!! @! P& 29D9u@-P+PuM@0j@"=At9uP>7Ct~PEAt;t 9uP%9_tGMuVY_^[]I5sW}W֋PtP >   %_{3 {t CÈ0֋SP_^[]ËUW}SV5p@W֋tP    _PE{At C{t CMu֋S&P^[_]Åt7t3V0;t(W8YtVE>Yuf%VYY^3j hx@c,AFpt"~ltpluj ->(vj YeFl=pAiEEj };uËUV5A5@օt!AtPЅt't@V @u Vnthd@P( tuЉEE^]jY{!{${{ @@u5%Ae%!!5^PP5*;*@Ѓ , C2P@ j hK:@V4EuF\@3G~t$M M@Ӊ~h0u~pƆCƆKCFhhAj nvhl@ >j M!}E Flu:ĉFlvlY2 3Guj 5Aj , pVW\F5@ybNhjY1:V*05Si`jV?@YON V^Y3W@_^ËVV@p^jhz uF$tPM2F,4 E"F<@DH \=eSj ~htW`uPtW-tW9 E~lt#WY;AtU ?uWpV'XPI v2 j >VW q`^51ht h %Ah JAh @փ="05QA@t=)Pt =%tu$H 9QdO@%<bP0`5?0 U!vjMmtehXQ@Q=YУH )4V 3@t 3@3_USuM]C=wE苀~Xu]}EPE%PGYYtEjE]EY 3Ɉ]EAEjppEPQEPEjP6 u8EtE`p3E#E }tMap[QVu Vw F Yu8 N /@t "S3ۨt^NF F F ^] u, ;t @;u u YuV?YF WF>HN+I;N~WPu * EM F yM tt*AA@ tjSSQ*>#ƒt%FM3GWEPmoR9}t N E%_[^ËUQQS]VW33};At G}rwjz@Y4ji@ =AAhp@S %AW08 Pt V%h9%AVj=&A@u&hX@hV7B@3P"DV@Y|`tj Cux0uhs`)hsYYSVW5+A5+A}YY;$+ߍCrwW>CY;sH;s;rPusiuG;r@]t1P4YuVqEY3Vjj @V& B.ujX^Ã&3^j h@eel EE E',YH]ËV@ W;stЃ;r_^&&& W3@A6Y(r_^̐MMZf9t3]ËA<8PEu3ҹ H‹]@(EH<ASVq3WDv} H ;r X;r B(;rv Ojh@h7@dPSVWA1E3PEdPeEh@*tUE-PPt;@$Ѓ`Md QY_^[]ËE3=!Ëm.32jh(@W a@xtg3@B<ph [@'4`QQV`)FV\tAW}S99tk ;rk ;s99ut X]u3u `3@@ަN`MM N`H hA=l;}$k ~\d9= B߃ ;|]~d=u FdD^=N=4>=4.=4=0=FdvdjY~dQӋEYF`[_E8(A<@@D(AUE mV9Ptk u ;rk M^;s7 5DYj hH J3}}؋+] LtjY+t"+t+td+uDs}؅ua8(A#`w\]ZÃt<t+Ht3P뮾@J@< @ D EPEY3}9Euj9EtPY3Et tuO`MԉG`u@OdMGdu. hAM܋ lAhA9M}Mk W\DE~EFwdSUY]}؃}tjTY CEԖEЉGd3ËUEL(A]X\Bjhh@meu u@E/EE3=Ëe}uj@eYE_`o 5 |Ytq 3@]3 8csmu*xu$@= t=!0=".=@uC3]h_@T@3Ã=+AuHV5< AW3u<=tGVYtujGWYY= AtBSBVRC>=Yt1jSRYYtNVSP|. !">up%'+A3Y[_^5 % aVQMS3VU 809Et ]EE>"u39E"FE<tBU PF'} t M E FU Mt2}u t utBM >< t< uFNr}t E3C3FA>\t`&ugt F8"u 339EqtI}\BuPtU= u< tK< tGt=Pt#9b M &C #FU FVt210E^[t } S3VW9uhRh(AVSl)A@+A5( A;tE8uuUEPSS} E =?sJMsB;r6P`SY;t)?@WVA$A@H r A3_^[Pp)A V5@W33;u.֋;t "kP#\xu jX"B;u;u3f9t@@f9u|5@SSS+S@PWSSE։E;t/PYE;t!SSuPuWSSօu uY]]W@\t;u@;r8t @8u@8u+@PEB ;u V@EuVW+&7a jhP@t)AuE@*Ae9SWN@;t t УA`V0u3uCpEP(E3E3;uO@ u 5|@։5a$^_puҊ 3]V3;|;*ArV8 n3ȃ *AD@^]áA39x)AL$t$tNu$'~Ѓ3ƒtAt2t$tt͍Afe+ÍA   USVu 3W};u;vE;t3vj^SQ0PVuMsE9XfE ;v6;t;v WSV8< t*mi8]tMap_^[;t2;w,I~"~ B8]yx`pm`T7%$M QSWVjMQS] p@;t9] ^3M;t\@zD;gp_ a0 O:ljuuu u| 4]É0u 9:EMA%}8U%YY]VD$ u(L$D$ 3؋D$d$ȋGȋ\$T$ $X ud$ȋD$r;T$ wr;D$v N+D$T$3+D$T$ ؃ʋӋًȋ^%*ASVWT$L$URPQQh i@d5>3ĉD$d%4D$0XL$,3p t;T$4t;v.4v\ H {uhC1C1dgp_^[ A t3 H3袵Uhp pp>! ]$`T$UL$)qqq()UVWS33333[_^]Ëj_033USVWjjhi@QQ_^[]Ul$RQt$=0 ]j h@eu;5p*Aw"jYeVa YEE EjYVVuSW=d=t)Aujh0M*Aut3@Pu VSuuFVj5W׋؅u.j ^9)At%Ytu{N0G_[V{'03A Qp^]jhh]uu  "u u ScY=3}jw"q}S6L;r IVSP t]5V .;t'CH;rPSu:$SESP >9}uH;u3Fu .Su VW0 ET T#Su$.}u1US@u ]j}9=Q,V9}ulP_Y_<J"%@th!qVCuV Q4VitvV6C 0|u"YsM S3;v(j3X;EsS u3AMVW9]t u)YV YYt;s+VjSXA' _^[]ËU h*Al*AkU+P r ;r30MAVu W+y iDMIMS1UVUU] utJ?vj?ZK;KuB sL!\D u#M!J% uM!Y] S[MMZU ZRSMv]]+u]j?u K^;vM6 M;v;t^M q;qu; s!tDLu!a1K!qFbIN TINu ]}u;M ыYN^qNqN;Nu`LML s%}uʻM  ^qDD )%AJ&`YJAꍄ ED0E|)Aء |*A5@h@H SQ֋ 3\1 P2@0Xb@HC!HyCu `xueSjp pj5t)A`@Pk +ȍLQHQP+E  ;,avm t0E =[_^áx*AV5GW3;u4kP5fW@;u3x66'Ak0thAj6d@F;tjh hAW ;uvg뛃N>~F_^!QQSVqW3C}i 0j?EZ@@Jujhy h2upU;wC+ GAH@PǀhIuˋUEO HAJ HAdD3G0FCENCu xc!P_^[1 SVuW} +Q OI;|9M]UE;; IM?vj?YM_;_uCcP shAL&/h O_YOyM+M}}M OL1?e_]][@]YKRKY;YuWLML s}uϽ DD ;O=$OD MD2LU FBD2<38/H] )uNK\3uN] Kq^E uUO;OQQdtp%uQNQ mq] OwmPwOpbuuqM yK{`bKYSWLAWοM 9DD }uNM yNN ED3@_^[ËUh*AMkl*AMSI VW} M 3U t?S;#U# u ];r;uY$r;u[ {:S;u1: $r;u؉]u3 S:YKC8ttCUt"`|D#Mu)eTHD9EUiDMLD3#uYh#Mj _G}MT +MN?M~j?^;J;Ju\ }&M|8Ӊ]#\D\Du3M]! ,OM|.u;|)AuM; |*Au%MBSVuW3;u赾Wp= BF t7V(V(V購P'}F;t PY~~ _^[]j h@藾M3u3;;u2~AW躽 F @t ME蚾V薠c`}V* EEՋuV%8*A3ʼnEE V348q09u>;u'訽0莽V'SW}4`,NJX$('tu0Mu&?30#k!C@ tjjjuc >YD@l39HP4 @`39tP@.AP3<0EBDg 3 mǃx8tP4UM`8jEPKP@t:t+M3@;,@SP<( CajS%7P$3PPjMQjI@QP>0\j PV 49Q){ I@9! ]WT(jUIE Y 9K`X <t<u!33f CC0)!R%%Yf;%0hhUqt)j XP 8$-;AE9p'T4D83 @`O9M J D+4H;Ms9< A u0 @D  r‹؍H+j,PSP4@B"08xA:u0+4EL w 9MM( @0+A{1FDAAf uj [f@@pf@@R.bZ?#@|#jH^<PM!@Rf r3VVhU QX++PPVh@;+P5=1Py@t ; \@@A\ ?j;`Qu$01"t- K< ` HQul$pt-j^9 u 0?"Y1ED@t8u3$ֶ@@޶ +E_[M3^hjh@Eu<!O3;|;*Ar!y8_(W.ɋ*A L1tP9$Y}D0tWu u.F E!uMEEh;Vf@ 5I5;5!S#<QLPPl#]Dt1"YPT#u n E]9]t1M~#jËUS39]uִ@S ^C3jVu ;u$:$`9urG>uMV%F9YtH9Ew D u+ȃ+N8]tMap^[ə2j U" ]!S3Vu9]u;u9] u3;t9] w j^P0蒳FP]uW};uس1a1(uM胛&9XuuWu V L}U u@G:tJuJtMu:@;8t}u5x};rEPEP0YYtM9us+E{uZE v:|};r!DD&D)9usE +Mt\8]tE`pjPX跲j"R!@R-d+΃|Mxi+EtTj*XX@M 53_& Et8uPxY/A3ʼnESV3W9)Au8SS3GWhd@hS@t=#\@xu 9]~"MEI8t@;uE+H;E}@E0;]9] u@E 5@39]$SSuuPu ֋;~Cj3Xr7D?=w#;tP Y;t E]9]>Wuuujl51SSW!% u֋ȉM;E t)9];Muu: 2~Er9D ";tjPJ3;tAuVd"SS9]uSS)Su @EVYuEYYr]9]IEu YEu3!E SSMQu> E;tԋ5@2PuQE;u3~=w8!;t-4 3;tuSW uWr3%uEuPWuu#uWYKCuMp9]t LYE;t 9EtP ƍe_^[M3'ËUuM!u(Mu$Bn0( }tMapEQQA3ʼnE)ASV3W;u:EP3FVDV5)'4AjXEϵS#Qu % <w4xļ-P؅ti?PjSސ2 WSjuօtuPSrES@u3gE9]uAY3G;EtQu Pui$;t܉u@;tVEǍe/( "$ j0 Vuvvvn1 f1^1V0N06GAv ?1$71(/1,'1014118@<p@v@1D1H1L1P1T1X1\1`1d1h1l1p1t1x3||pn c  X  M !B 7  ,  !      |2,^]t5;HA ݭ SF;LQv;5P0V Eq~F ;T"0P"cF;XC;\s;`AtPaYF;dAtPOYF ;h=Qv$;5l0V+^]ËUES3VW;t} ;w衩j^0S+*>[$A*L F FRGgV2I@@@@Ē@̒@Ԓ@(DDDDDDDDD D DDDD@@@,@dcFG2G m?p!i# iGFjPQQE nEEWVEY;ui NjJuMQuP@E;u\@t P[Yϋ*AD0 EU_^jh(@Ou܉uEu 墄Ƌ3;|;*Ar!֢8輢)W1Dqȋ*A L1u&A{AA[PpY}D0tuuu uoE܉U-N!5`MME WE܋U蒢uYËU AhYMAt I AI AAAa]ËIDSVWbe=)Ah@@*5(@h@WօP謸$GaP藸@)AmY)Ath-UP)A`;tO9'tGP賸5@*Yt,t(tMQj MQjPׅtEu M 9p;t0PcCt%ЉEts;tPFAu 5#.uu u!3_^[i MV3;|~ uD A(! pV&蚟^]jhH@93]3;;u؟5W%`: S=*Au8jUY}S E;t s uuE%9}uSW5t@3]uj#Yj菉 `$(A3ʼnEAVtj 3Y tj Y#   f!!!!uEDž0@jPjP:a (81j%@,T@*|PP@jUSVWUjjh@uV"]_^[]ËL$At2D$H3貅UhP(RP$R]D$T$SVWD$UPjh@d5PD$d#D$(Xp t:|$,t;t$,v-4v L$ H |uhPDIP `_뷷0d T_^[3dy@uQ R 9QuSQA lKCk UQPXY]Y[GVWuM资Eu 3;t0;u,ќW 1YA}tE`p3t }|Ƀ}$ËMS}~~EPjPeM BtGǀ-uM+uGEKB$9u*0t E K4>[$A*L@gV2IT@\@d@l@t@|@@(DDDDDDDDD D DDDD@@ȟ@\SFGr2G2UVuWVYtP*Au u u@Dtjj4Y;tV} P@u \@3V_XYD0t WŖY3_^]jhh@ӖEu荖 r 3;|;*Ar!d8J(Wҕɋ1 L1tP$}D0tuYE ME Eb2iF ttvf 3YFF^]1A3ʼnEV395AtO=tAu upVMQjMQP0g==2uڙaxuωQ VVjEPjEPV@P ^tVURP)AQ VtfEM3^|ga#SVu 3;t9]t8uE;t3f3^[uMd|b9Xu%#ff8]tE`p3@ʍEPPYYt}E~%9M| 39]RuQVj pEuM;3r 8^t@8]eMapY H*`:jPuEjn %!juu $ F]QL$+#ȋ%;r Y$-PEVW|Y;!sQ"<4<u5=AS] utHtHuSjSjSj@3[10MS3;VW|[; *AsS1<"h@t58t0u+tItI 3wa[3*Ac%H/Ã]V3;|"%ȃ #P@u$"]p0V 萑h^]j h@+}4*AE39^u6j XY]9^uhF PoYYu]FE09]t][&D8 P@E3ۋ}j YËUEȃ `D<@]jhdM3}j Yubj Y}}؃@<4Wхu;Fu\~u9j PIa3C] #c  ]Fe(}u^ SUPtS@낋}؋uj 1F+u}uyG+j@j 菒~Eta щ*A s@@ `@E} dσDWWl1 %j W A3ʼnEjEPhuE@u `YM3w 64IEME؋ESEЋVE܋EW3M̉}};E _5h@MQP֋rt^}uXEPu օtKpEuE u&YF;~[wSD6=w/gP;t8-WWuujuӋ;u3PxY;t E}9}t؍6PWuq VuOt];tipSVuW"`][9}uWWWW&tUE+EPRQLb$-ʃU1]]0j j1]iS3VW9]Ms9]u.譋S5@8]tE`pp} ;t˾{9uv(n?-? `E9XuuWu fDMap;EMQPGE 53GMt;t;t+3[V395$Au99uůVT'9u t܁}w^]Vuu ^]3PPjPjh@hL@@tAá V5@ttP֡pA^=+AV5 Au3cWu95 AtSOJ"t@}t:uaZY'PVY;v<8=uWuPn tu3_^]ËD8jh@jGY3u3];;u P_8V}3E ;t039u6tuYE;tXP讷GjWlC ;u) E*uWP*@;t }@VltL8uE Ejj蜏YËUSVu Mp];sTM胹~EPjS膥 XO0 }tE`p震A胸T1]}[E%P赵 YtEjE]EY*3Ɉ]EAEjpUjRQMQVpV0 $oEt M Map^[RUWVSM tMu} AZ I& t' t#:r:w:r:w:u u3:t rً[^_|SuM oW3;u8]7739]u.S衆0q3P tVz;v܆=d=?E9XuuQu u#`6pQuhp EP!X ;u~r$MUSju` "] QQSV3W= Au;te@jPVVӉE;tTjP荈YYE;tCVVuPj7&t6EVPYY}9ut uAxPue u[Ã! !D$L$ ȋL$ u D$SRd$ q[MI8t@uIE+H4,A3ʼnEESVW3ڋ]܉E9=`*Au8jd@PjPWW$@t `*A\@xu }~&u!YEU;~ER[YU}}3| }#;3@;u։}9}uIM9}t;xUujXu;m9E~jquh%9}~)}r}Et׊PtЊ :r:v@@8u9}~8.s3@X66M :r:t=΋5@WWuSj Z֋؉];~@j3Xr4D;w&ątP褶Yt Ee}Su1ju`jEugt{~B6tZP!3t1SWu_x t O EWYuEYY39}u@Ep@E Y;utPЍEPuVu-%؃!QPu! !!u S觅Yk "}E5 @tSwWq6Yƍe_^[M3i4ËUuMiu$Uu Muuuu `}tMapB@SuCiiU3;u8]tE`p39]u.vS\0q3P tVk;v9== KEH;uEPRu u2\?pERuhQP ;u߀r#^[V5 A!WPl 9M u <=ttuً+1^]!DQW3υtF9t @9uV@jP蹂YYuuj jjPcYu!E^_ES3ۉ];u x%nV0Wu;tSj=VYY};t@;t<38_E; Au 5 u`9] t$9 At3tJuj@_O9]j菁YCBtމ@aujtOb;tÉ0u;t+}ub;Y|R9tN46lY9]uEEFG49u?sjjW0߁q ;tUN;}ߍG;6=8+Pj<<@ YM$xujVȬ@Y@PЀYY;t\VVAWՎ@t B@S|M+E@#QW(@uM}yp*WYLP9]t6KEYEh 55@3SY30S3p3AVW UFV詰"uVW@"{3_^[]@SuF!#e3;u(H}^JtVu9^u:u PYYAD2t@:t> 9M u H9U t @ff;u9M ug $jn, ]̍B[Í$d$3D$ST$t :tτtQ%u WV ؋ ~333ƃu% t,uu^_[3ËB:t6t:t't:tt:tt^_B^_[ÍBa%@ UGz;u{4D 8tߋM ;t؋;t8tSQR UVujXEU;ucLP H{ S3;|;5*Ar'9{.0zQW<*AƊHuzF$zo@jwwP]; t7@$EHjYtHuШtUE EmBu!lml!y 4M;rEuz|YE158 <= hjSS|D(ET,AHttI tl9]tg@MED 8]tNL%)C)>)}E-A% u$*&***BE& & SMQuP4,@{M;p;Mg4MD};t M9 u ]EÉ]E;Z<< t CAMEH;sA8 u A  uEmEjEPjE`u \uE}t?DHt} t ML%;]ujjju CE9EG@C+EPED*K xC3@;]rK @At+u w*zA;u@AHt$CQ| T%Cu&C+ؙjRP!E+]Pu Sujh@Eu4GPwYME;E tPzYE"3;EL0;tMf ff tf CC@@E%M;sHV Ej GE)OE)[)U)(f} tj Xf-- L%D& *=->d!dECCCtCffCC+]]j^;uu8 u0imY]\3_[^jh@uEuu uKP龕;|;*Ar!a%fsV0t#ɋ*A L9t;MAu2NN PYuD8tuu ? ~g Et0tpME ENu;iVËU0S3EVW]]E ]t ]E E]]EP Yt S0r*Mu@u9EtM+útGHt.Ht&7tj^TaS0sW4UtuE@}EjY+t7+t*+t+t@u9}e### 42]E#¹;;t0;t,;t==@EP/E @&E70=t=t`;1LEEt  A#MxE$@tMMMt } pERt6uri r1A E=@uEPuut@׉EGPmM#;u+Et%e?oEu946҃D0 P?rYrtu<@;uD6V*AD0 \@VqYu@;uq 룃uM@ uMu64ЃeYYML rD$ MeHMEtqjW6 E;u:q8tM6jEP6] u}uERP6M;tSS6F]8;tE0@@}uE#u M EE#;tD=t)=@t"=!$t=@uEM#;u E]E@]E#=@ tw;$&;yvv0fE3H&HREj  87a tS'#ƒjEI /,  utk}uY0!@b4sP T C #k E%=u6Yoj^0d=uSj6XJQA=AEBEa+PD= 9}ۋ 1$2M0"M ʈ8]u!Et5MZW }!Mu|EtvSuEjPuWu @u4PPmh 6Y6N_^[jh@mM3u39u;ummVPV0lNruuj@uEPE"EE};t<m839ut+9utEM1D uYËEomËUQQVDul0V&QpJ9u t!Pluu |Utu jUuouoR^ySW}3ۉ};u Il#SS k3$8t܋E ;tՋ;t8tVj\W j/W ;;.j:W=YY;usWIЃjVMnh ht@VWkÅ` t S0juVW  iw} ;t;vMj.Vh YYt,Su @3V`W1B薙j ;u'PVP„`XQE}YjEE+EAE0VWrFFS"] tm}A}jMu -!0Ev}Y9}t mYE^_[ SVW3jSSu]]E0UtY=uz#ʯtAu }+z;Sj4@Pd@Eui i_^[huYYE| ;rPuu謫 t6+xӅwϋuuD FDUuj`@3xWi8u : u;q|;skSuu Q#ƒDYP0@HE#‰Uu)h_h\ u#uSuuUkp3UVuV"yb1yb MWuju P@w$3t PihY*AD0 _^]u@S] y,!,#. 0A$Wy@tPtBt&@t u=I L1$⁀'Ƃa !_^[uc ]Ã`%{EV3;uNgV0fjX d*A34hES3W]];tt~~ u EEE8gfSSSSSgog#@8uH8t 8uVjD^VESPdJu5 ;t+Fȋ *8\uNH;u;@234kfEjP!YE;;0E̍H|0]~9EЃrPuEA9u|ʋE8]t,H3D}j_;} BAE e3EPEPSuujSSu{T @6pű$;u WeYX}uS4R5@9]uju@EP O]}u]u֋(er^_[@A3ʼnEM XVWx@}fMԋM3ۉMMjEȋM]܉]]^P2tY;ujVu*guYY;u#Ed0d 9M/EPESP ;tuq0b0b) 蹒GGY}9]tu褒E;tOj_|Y< A;uC5u6MREYe$}ȋ6;FU]8t(=tVYMLj4M:u܋MM+8Xt-x:u'x=u!Pݑ;p؍D E8=t΋E+Eu} PP 6tM9u}jWePM26kfYb.Pc  iEP+EPVR t  'a7t6PE6I6$`6# FY;uËE^09]}؋E+Q QV+} }6EM7+PVѹgyxkYt9u9]ug}ЍEPWV藹 t S0?`h`@WV  9]tuWV߷# _;t E;0uF< A;tPdYK` uE܋M_^3[IËUV39uu$Ba0(aV谗NjXUE uu8@u\@PaY`(u"tE t`` 3^]ÉSu3ۍM]lHM;u(`ES8]tE`p3qVu9^uu QjYY$,WMapNWD7t!A:t 9E uAE 9]MA:u_MqSE^[Eju u2 39]u3uMGE9Xu&u=!=8]maW};t9] u._ t%VfMGDMtC:u]Xff fGMf;pr f;pwfp6f;pr0f;pw*fp$U At fDҋuM f E dEU W+?!;HHHHHHMf;u!f;t 9],3^_[H{! #J]0U3كE 8t3_-4L`hz8Vjz(8NZj*DTj ,>Pbn|(8J@A@4K@X@_@$f@failed to get exit code from process. (hcreate %s%sCould noH ecPCanfind Python executable %s #!p@.exe%#!8Aopen&-script.pyhbrExitPmscoree.dll(nu )Wb(null EEE@50P.( 8PX700WP `h````xpxxxx!A"A/A  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOTPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=EncodePointerKERNEL32.DLLDe,FlsFreeFlsSetValu G PAlloc< runtime error TLOSSWSINGvDOMAIN)R6034 An application has made an attempt to load the C |library incorrectly. Please contact2^'s support team for more inform.0f3 - Ause MSIL ; from this assembly during nativd\qitializ_ T00indes a bug in your . It is most likelyresult of callm!an-compiled (/clr) funcTanstructor orqDllMain2not enough space/Plocal10180#ine2CRTpthan once.h0dJad 28 `unable:"P heap& 27(DEwio 9868?std858pure virtualaPR6024(_onexit/at t7 198@opensole device,$expected 1 %un$multithread lock05data `requesRato terminate it)pan unusA/wa8AR600D|environment p0D,@argu)sqXPPfloatpCeMicrosoft ViDC++ L ...3EB! P' : = S  S      JEEE00P('8PW700PP (`h`hhhxppwpp%, $( ?H . 2&/B&/@ 7%8h]%&/8 f7& /' 0&&  󀁂  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~k ABCDEFGHIJKLMNOPQRSTUVWXYZ {qHH:mm:ss dddd, MMMM yyyyMM/dd/yy PMAMDecember5Nov @OctoDSeptAugustJulD@June8AprilMarchFebruar$!an DecNovOctSepAugJulJunMayApr MarFebJanSaturdayFri QThurs sWedne "Tu 1Mon#Su at<@Thu0TueMonSunGetProcessWindowStatioUserObjectInform0A4LastActivePopupG MessageBoxAUSER32.DLLtMonTueWedThuFriSatFebMarAprMayJunJulAugSepOctNovDecCONOUT$.comA.exebGQ.cmd\SystemRooa@H$A@7 iM@0@ *#  j%@%  j<5@@5 *: @*;  ";= 5=@ h">( /? oA@9A |*-G *J /kN &P 0&oR({ p*5YpHoZ@Z j-[@1[ *^ j_@/_ *)j @p*:l @*>y @/N */ *$ `/ *T *˥ " &ͦ "L( *h ` @Tfb -4L`hz8Vjz(8NZj*DTj ,>Pbn|(8JKRGenerateConsoleCtrlEventGetExitCodenWaitForSingleCreat'ASetUHandlerVModuleFileNameAEnterCriticalSect ionLeaveCriticalSect$GetModuleHandleW+Sleep"GetProcAddressExip<CommandLineASetHCount>D2Std04FileType<artupInfoADelet7Terminate LeCurrenQHUnh`dExcepFilterSetIsDebuggerPresentb LastErrorHeapFree pAlloc\( CPInterlockedIncremK(%DeS<`ACP0OEM IsValidCodePage>TlsGetValue<} ? S=j0ThreadIdWrite LoadLibraryAInitializrAndSpin KqpEnvironStringsAt/L2 WWideCharToMultiByteHAWCreateaVirtualYQueryPerformance@erjlATick0`a@IdS&SystemTimeAs& RtlUnwind"Re^!Z`onsoleModeBFlush\BuffersLCMapHUA $To!(&AW@|`JAC@W`Locale@A(~0Poi1SizeDClos".C0ANaOutput &0Wz"yuASCompareV@WؤHVariableAKERNEL32.dllnReadX242dOf& 0ʾAttributesA"+'  H#  >N@D#@l@\@ n'LS    X<XPS|!5(AC@P4RS@W`@Y|lm pr0@ PH)p  "0$4t (4,    abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 6 ?MhA`y!q" "@ 1@~ڣ "@0A0Ϣ[M`!~2QQ^ _j2* 1~:l@C#=9AS-U&Hdh@@p@AA@@ @ @@@@\@$@@@@d@D@@ @!@"@x@y@z00@mP@_@ΗqXc lj@@@@@@@@x@p@h@\@P@H@<@8@4@0@,@(@$@ @@@@@ @@@@@0$@@@@@@@@@@|@p@ .T_A)$8<L(@  ("p0HPST /PD@+AA} ;Z0NmT4 :Yw/MlY l@d@\@T@@@MZt `39@ . !L!This program cannot be run in DOS mode. $YSؠ2QՋ2}82`*1;1-?2RichDW PELQ  N &E@3R@ q Q4( +X@C0 .text5( `.rdatah ""R@@.'0+PT D@ -QD$P@uSUV+WD-jPx 33ۉD$"p~W L$ <\uG <"u~Wj\V< 3\F3T.CF;|Å~+V+!D$_"F^][YÁ A3ĉ$V$W*τtd$A9](u>u3@8tHF;w>:u5;t}jujQU&Fu9](uE;tu3]8tUP&YtFB3C98 A4 AE0 A} a5+A0,Y}؅tx5u܉}uu;rW+9t;rJ6++2UM + 9}u9EtT`}؉Eb}hp@dp_YhxtOE}u(jlYp3C`tjSb"j ]@jj? j)"0j#V*VY;V: w  8 57 p#@E* $^ƒ=D Au3#12'@jXh03uEP4@j_}MZf9@u8<@ PEu'  t@v39@Mu3CS?u`ujX@-jGYW4] }j&Y0@+AQ>< A=&0&3; YSp;tPJ:]tMj YQPVh@E9uuPE}5E MPQ5YYËeE܉E}33!EE3@*>xUVuVSPk?at| ;u3\@;u`3@ AF uNSW^^N 3_@[3^]ËЃ}t'Vu F XBtVf f&fY^]A @tyt$Ix  QP-YYu  MEM >t} ,G @SVt2u,E+M}C>u8*uϰ?dQ}^[]xA3ʼnES] 3W}u ! u5M3PNt `p F @u^V@ YAttȃ *AA$u((ȃ& @$g3;]غ! C!@ , If90t@@;u+(;u I8t,,i L@\'@t2t T- r+ t! 6+ + a uSj p && 4vBYtGuWSj0".B pqtf~b9 lP PjEPFPF5u(9@t `M>Yu2P*Y$|t "I@ 0Pt p Ypt3 t `pM_^3[Ð+@)@G)@)@)@)@B*@p+@jThX@e3}EP4@Ej@j ^VyYY;*A5*A0@@ x@$@% @& x8@4@ *A;rf9} n E\8X;E)|EZ[j@j tVM *A 76*ƒ``$ƓD`8;rE9=@Q| .e~mEtVtQtKu Q@@t%Y@uF@ uNh4F P)YYt7F N@Cg5*A8@33@ËeE(cËUEV3;uV E@^]2SP A(A3ʼnESjLjP@( 0 ,    f!!!!EMDžjpM IǕQǭ X@jT@ PP@u ujM2YhB L@PH@M3[7 55P*]j?d]3;AtA-rHwj X]Ë}DjY;#]@AÃD 0VMQY0^]h8@d5D$l$l$+SVW1E3PeuE^EEd8pËMd Y__^[]Q\ЃS] Vs35XWEE {t N3 8N FRE@fMUS[ EMt_I[LDEEt1E|@GE؃u΀}t$&sAN V0:"E@EɋM9csmu)=*At h0!ZtUjRM '1E 9X thRӋ*{MH "EH09S RW0  VW3u%kYu'9T AvV$b;uʋ_ EPju JE LLJ[_,9E tNQ&%3O,9ERR+j hx@utu=*AuCjYeV73YEt VPXY/ }u7u jYVj5t)`r0k@\hYjhE3ۉ]jI]j_};=;A}W+A9tD@ tP=tE|('ы PD@4YdG 0AE@7%SVuF Ȁ3ۀu@t9FW>+~,WPVaYPD( ;uF yF N _Ff^[g`u V`Y/V|@tF @tVP[EYY3^]jhO3}}jD}3u;5QRs98t^QVPVYY3BU,H t/9UuPJtE9}u/Yu E܉}F3uࡼ+A4V"YYE}EtEwjYjYËVW3X At~t WW&YhA|*p_t *VuP ^[ËUE4W)@]j h@Z3G}39t)AujhPQu49tnj Y;u Qj YY]9u,h BWt PuW<%6] >W E3 (|"V>uP"ujDY6@^@dM3;v.jX3;E @uWH3M u;u3F3ۉ]wi=*AuKu E;p*Aw7jLY}uH6$E_];tuWSu ;uaVj5d@;uL9=)At3VYrE;P0Eu jY;u ("t"U}}M f$ffG 0@P`pIuЋ}]WWE3+ u;E;t':t!.t:S.F.. vEhj"3_^[ uME MUTu}tMȻ`A#EVt3@}tMapSjjuu xB]lAjTuuu s?5("A    5="Af! !!!%-"A"AE"AE"A!A!A !A X@!Aj$YjT@h@P@=!puj$h\L@PH@-t"t t Hzøø   RVWh3FWP3ȋ~~~  ~hA F+ο@Ou@Nu>_^ËUA3ʼnESWPvh@3@;rƅ t.;w+@P j R8 CCujv vPW)PjjyE3SvWWv SZCD!!@hZ1S5%p$3EgtLWpt Ƅ @;rVDž3) 0 ЍZ w Lр w р A;r‹M_3[j h@@ AGptltwhuj nYj Yewhu;5At6tVp@uhAtVYAGh.uVl@E뎋uj Y7 S3SMt$Au x@8]tEMapEAD;FG;v}FF>uыuE}urlj{CVgjC CAZf1Af0A@@JuL@;vFF~4C@IuCC Ss}ȋ {95$X^!0h`M  }_huuE;CWp ؅F #SuYYE Uuvh"RFh=$PcY^hS=Fpj tC$AC $A3E}fLCf E$A@=H} LP}b@!   4S`0j %u 0St6,eE~Ã=+AujVYL"3S0,W;to=HAth;t^9uZ9uP6AYY!!5! P& 29D9u@-P+PuM@0j@"=At9uP?7Ct~PEAt;t 9uP%9_tGMuVY_^[]I5sW}W֋PtP >   %_{At tP>{t CtPփMu֋P_^[]ËUW}SV5p@W֋DG D_PE{At )#^[_]Åt7t3V0;t(W8YtVE>Yuf%VYY^3j h@_,AFpt"~ltpluj >(rj YeFl=pAiEEj };"uMV5A5@օt!AtPЅt't@V @u V>хthd@P( tuЉEE^]jY{!{ g{{ @@u5%Ae%!!5^PP5*;*@Ѓ , C2P@ j hK:@VEuF\@3G~t$M M@Ӊ~h0u~pƆCƆKCFhhAj nvhl@ >j M!}E Flu:ĉFlvlY23Guj 5Aj , pVW\F5@ybNhjY1:V*05Si`jV?@YON V^Y3W@_^ËVV@p^jhz uF$tPM2F,4 E"F<@DH \=eSj ~htWp%@uPtW-tW9 E~lt#WY;AtU ?uWpV'XPE v2 j >VW c q`^5@h@t h %Ah JAh @փ="05QA@t=)Pt =%tu$H 9QO@%<bP0`5?0 U!vjMmtehQ@Q=YУH )4V 3@t 3@3_USuM]C=wE苀Xu]}EPE%5-YYtEjE]EY 3Ɉ]EAEjppEPQEP$P~6 u8EtE`p3E#E }tMap[QVu Vs F Yu4 N /F@t "S3ۨt^NF F F ^] u,l ;t ` @;u u YuV@YF W^ F>HN+I;N~WP;\<+ EM F yM tt*AA@ tjSSQ>#ƒt%FM3GWEPo$*o9}t N p2E%_[^ËUQQS]VW33};At G}rwjb4"u =AAhp@S %AW8Pt V$h9%AVj=&A@u&hX@hVNB@3P"DV@YI2j<@;t$tjEP4P6%YP6S@_^[j^?YtjQ Cux0uhs`)hsYYSVW5+A5+A}YY;$+ߍCrwW5?CY;sH;s;rPusiuG;r@]t1P4YuVqEY3Vjj @V& B.ujX^Ã&3^j h@ael EE E}o',YH]ËV@ W;stЃ;r_^&&& W3@A6Y(r_^̐MMZf9t3]ËA<8PEu3ҹ H‹]@(EH<ASVq3WDv} H ;r X;r B(;rv Ojh@h8@dPSVWA1E3PEdPeEh@*tUE-PPt;@$Ѓ`Md QY_^[]ËE3=!Ëm.32jh0@S a@xtg3@B<lh=[@'4`QQV`)FV\tAW}S99tk ;rk ;s99ut X]u3u `3@@ަN`MM N`H hA=l;}$k ~\d9= B߃ ;|]~d=u FdD^=84N=4>=4.=4=0=FdvdjY~dQӋEYF`[_E8(A<@@D(AUE m V9Ptk u ;rk M^;s9Pt3]5@(AYj hP@F3}}؋] LtjY+t"+t+td+uDs}؅ua8(A8(A`w\]ZÃt<t+Ht3PPPPP뮾<(A@ D EPEY3}9Euj9EtPY3Et tuO`MԉG`u@OdMGdu. hAM܋ lAhA9M}Mk W\DE~EF wdSUY]}؃}tjT߃ CEԖEЉGd3ËUEL(A]X\@jhp'ieu u@E/EE3=Ëe}uj@eYE[`o 5 |Ytq `3@]Á(E8csmu*xu$@= t=!0="=@uC3]h_@T@3ËVW39=+A'5+Aub@< wt.t$<"u 3ɅPFF< wFu_^ÃYZV5< AW3u<=tGVYt?jGW!.YY= AtBSBVSC>=Yt1jSYYtNVSP}. J)!)>up%'+AapY[_^5!~& aQMS3VU 8P9Et &EE>"u39E"FE<tBU PFQ'} t M E FU Mt2}u t utB>t< uFN\}t E3C3FA>\t`&ugt F8"u 339EqtI}\BuPtU= u< tK< tGt=Pt#Wt M &C #FU FVt210,E^[t  S3VW9`ehqh(AVSl)A@D5( A;tE8uuUEPSS} E =?sJMsB;r6P$Y;t)?@WVA$AH A5 A3_^[Pp)A V5@W33;u.֋;t "kP#\exu jX"B;u;u3f9t@@f9u|5@SSS+S@PWSSE։E;t/PJYE;t!SSuPuWSSօu uYY]]W@\t;u@;r8t @8u@8u+@PE ;u V@EuVW+&7a jhP@t)AuCE@*Ae9SWN@;t t УA`VEP@u3u@3pEP(E3E3;uO@ u 5A։5a'^_[ËUEu 3]V3;|;*ArV# 3ȃ *AD@^]áv39x)AL$t$tNu$'~Ѓ3ƒtAt2t$tt͍Afe+ÍA   SVu 3W};u;vE;t3vcj^SQ0VuME9XfE ;v6;t;v WSV訳<@ Б*8]tMap_^[;t2;w,j"~n~p8]yx`pm`T7%$M QSWVjMQS] p@;t9] ^3M;t\@zD;gp_!Ѳ O:zjuuu u| "] 9EMA%}8U%YY]VD$ u(L$D$ 3؋D$d$ȋGȋ\$T$ $N ud$ȋD$r;T$ wr;D$v N+D$T$3+D$T$ ؃ʋӋًȋ^%*AQSVWTL$URPQQhi@d5?3ĉD$d%4D$0XL$,3p t;T$4t;v.4v\ H {uhC1C1dgp_^[ A t3 H3Uhp pp>! ]$`T$UL$)qqq()UVWS33333[_^]Ëj_0"3333USVWjjhWj@QQ_^[]Ul$RQt$=0 ]j h@eu;5p*Aw"jdYeVa YEE E)j_YVVuSW=d=t)Au!joh0轶*Aut3@Pu VSuuFVj5W׋؅u.j ^9)At%BYtu{0_[V'0A p^]jh]uu  "u u SY=3}j"q}S6L;r IVSP t]5V .;t'CH;rPSu:$SESP >9}uH;u3Fu .Su VW0 ET T#Su$.}u1US@u ]jH}9=Q,VP9}ulPY_<J+9}th *quFVSj5t)A@uV9)At4V;YtvV+R 3c|u\@PnYҋUM S3;v(j3X;EsSSSSS[3AMVW9]t u)YV YYt;s+VjSȬA _^[]{ h*Al*AkU+P r ;r30MAVu W+y iDMIMS1UVUU] utJ?vj?ZK;KuB sL!\D u#M!J% uM!Y] S[MMZU ZRSMv]]+u]j?u K^;vM6 M;v;t^M q;qu; s!tDLu!a1K!qFbIN TINu ]}u;M ыYN^qNqN;Nu`LML s%}uʻM  ^qDD )%AJ&`YJAꍄ ED0E|)Aء |*A5@h@H SQ֋ 3\1 P2@0Xb@HC!HyCu ``xueAp 6p`Pk +ȍLQHQP+E + ;,avm t0E =[_^áx*AV5GW3;u4kP5fWN;u3x66'Ak0thAj6d@F;tjh hAW ;uvg뛃N>~F_^!QQSVqW3C}i 0j?EZ@@Jujhy h2upU;wC+ GAH@PǀhIuˋUEO HAJ HAdD3G0FCENCu xc!P_^[1 SVuW} +Q OI;|9M]UE;; IM?vj?YM_;_uCcP shAL&/h O_YOyM+M}}M OL1?e_]][@]YKRKY;YuWLML s}uϽ DD ;O=$OD MD2LU FBD2<F8/H] )uNK\3uN] Kq^E uUO;OQQt!\Du#M!NL! uM!Y] OwqwOquuuN?vj?^M yK{YKYK;KuWLML s}uοM 9DD VNAyANN ED3@_^[ËUh*AMkl*AMSI VW} M 3U t?S;#U# u ];r;uY$r;u[ {:S;u1: $r;u؉]u3 S:YKC8ttCUt"`|D#Mu)eTHD9EUiDMLD3#uY#Mj _G}MT +M M~j?^;J;Ju\ }&M|8Ӊ]#\D\Du3M]! ,O' .%!]u ]M!K]}JzyJzypJzQ!3Q!^` }#} u {v ;q |D)# 0 {0N 7Mt LMuэN2uy>u;|)AuM; |*Au%MBSVuW3;uQWpٽ BF t7VV(VOP'}F;t PnY~~ _^[]j h@3M3u3;;uν~2WV F @t ME6V c`}V* EEՋuVY%8*A3ʼnEE V348q09u>;u'D0*V'!'SW}4`-NJX$('tu0Mu&ۼ30迼kGkC@ tjjjuc >YD@l39HP4 @`39tP@.AP3<0EBDg 3 mǃx8tP4UM`8jEPKP@t:t+M3@;,@SP<( CajS%7P$3PPjMQjI@QP>0\j PV 49Q){ I@9! ]WT(jUIE Y 9K`X <t<u!33f CC0)!R%%Yf;%0hhUqt)j XP $Yf;@;80E9D'$8T4D83ɋ@4@<9M (h k0+8ЍH;Ms9;A uQ @# Er‹F+j,PSP4@B"Q;:{+;EL h7M @ 1FAAf uwj [f@@pf@@R b Z?#@|## jH^<P*!@Rf r3VVhU QX++PPVh@;+P5=@P(L@t ; \@Q;\ ?j;`Qu$011tO K< ` GQul$pt-j^9 u貶 躶0?辶Y1D@tL8u3$r@@z +E _[M3^؝jh@脶u><!#O 3;|;*Ar!D8W.胵ɋ*A L1tP9$Y}D0tWu u.F Ec蠵8MEE;Vu@訵5OI5;5.!S0趴2<QLPPl#]Dt1"YPT#u n E]9]tʹM谴K##jËUS39]ur@S!3jVu ;uN$$`9urG>uMƛ%F9YtH9Ew D u+ȃ+N8]tMap^[ə2j U" ]!S3Vu9]u;u9] u3;t9] w襳j^B0.@]uW};ut1 w(uM &9XuuWu V L}U u@G:tJuJtMu:@;8t}u5x};rEPEPоYYtM9us+E{uZE v:|};r!DDD)9usE +Mt\8]tE`pjPXSj"R!ܱ!-d+΃|Mx};jrEPEP YYtM9us+Etj*X8]tMap8]tE`p3_^[ËUEt8uPY] $A3ʼnESV3W9)Au8SS3GWhd@hS@ =#\@xu 9]~"MEI8t@;uE+H;E}@E0;]9] u@E 5@39]$SSuuPu ֋;~Cj3Xr7D?=w#;tP Y;t E]9]>Wuuujl51SSW!% u֋ȉM;E t)9];Muu: 2~Er9D ";tjPJ3;tAuVd"SS9]uSS)Su @EVYuEYYr]9]IEu YEu3!E SSMQu> E;tԋ5@2PuQE;u3~=w8!;t-4 3;tuSW0 uWr3%uEuPWuu#uWYKCuMp9]t LYE;t 9EtPƍe_^[M3藕uM葕u(Mu$Bn0( }tMapE&QQR)A;u:EP3FVDV5)'4AjXEϵS#Qu % <w4xļ-P؅ti?PjSN2 WSjuօtuPSrES@u3gE9]uAY3G;EtQu Pui$;t܉u@;tV膯EǍe/ $ j0 Vuvv1 @1006Av 1$1(1,1014118@<蟮a@v@1D1H1L|1Pt1Tl1Xd1\\1`T1dL1hD1l<1p41t,1x$3|p   p  !           ,^]ËUVut 5;HAtP}YF;LkQv;5P0VY^]ËUVut~F ;T"0P7"cF;X%C;\C;`C;d!﬎C ;hQv$;5l0VES3VW;t} ;w=j^0S@ƨ>[$A*L F FRGgV2I4@<@D@L@T@\@d@w(DDDDDDDDD D DDDD@@@\SFGr2G m?p!i# iGFjPQQE nEEWVEY;u NjJuMQuP@E;u\@t PYϋ*AD0 EU_^jh0@u܉uEu蜢 聢Ƌ3;|;*Ar!r8X)W1ȋ*A L1u&18 W"蟡[PpY}D0tuuu u.E܉UɡN0ѡ`MME E܋U.EcËU Ah蹣YMAt I AI AATAa]IDSVWe=)Ah@@*5(@h@WօPL$GaP7@)A" Y)Ath- P)A`;tO9'tGPS5@FBYt,t(tMQj MQjPׅtEu M 9p;t0PCt%ЉEtp;tPqtu 5#!3_^[i MV3;|~ uD A(! p讟V6;^]jhP@՟3]3;;utU5DW:S=*Au8j@S E;t s uu%9}uSW5t@蕟3]ujåYj (A3ʼnEAVtj ӽYVjY#   f!!!!uEDž0@jPjP誁a (81j%@,T@*PP@jmUSVWUjjh@XV"]_^[]ËL$At2D$H3"UhP(RP$R]D$T$SVWD$UPjh@d5PD$d"D$(Xp t:|$,t;t$,v-4v L$ H |uhQDI>_뷷0d T_^[3d0yuQ R 9QuSQA lKCk UQPXY]Y[GVWuM%Eu 3;t0;u,mA!}tE`p3t }|Ƀ}$ËMS}~~EPjPM BtGǀ-uM+uGEKB$9u*0t E K4>[$A*L FRGgV2I@@@@@ @@'(DDDDDDDDD D DDDD@@H@X@l\ESFGr2G2UVuWVYtP*Au u u@Dtjj4Y;tV} P@u \@3V_6YD0t WaY3_^]jhp@oEu)  3;|;*Ar!8(Wnɋ1 L1tP$ }D0tuYE[ ME E2iF ttv賘f 3YFF^]1A3ʼnEV395AtO=tAu upVMQjMQP0g==2uڙaxuωQ VVjEPjEPV@P ^tVURP)AQ VtfEM3^ |ga#SVu 3;t9]t8uE;t3f3^[uM{b9Xu%#ff8]tE`p3@ʍEPPYYt}E~%9M| 39]RuQVj pEuM;3r 8^t@8]eMapY PH*`:jPuEjn %!juu $ F]QL$+#ȋ%;r Y$-PEVW|Y!sQ"<4<u5=AS] utHtHuSjSjSj@3[虒M1衒0MS3;VW|[; @sS1<"h@t58t0u+tItISj@, 3 _^[]ËUEu /,]V3;|";*Asȃ *A@u$辑0褑Vt,X^]j h@Ǒ}4W E39^u6j Y]hF PYYu]FE09]t][D8 P@E臑3ۋ}j 踗Y0D<@]jhM3}j Eubj 9}}؃@<4хu;Fu\~u9j ]a3C] #  ]Fe(}u^ SUPtS@낋}؋uj 赖1F+u}uyG+j@j /~Eta 16Q s@@ `@E}tσDWTMj  A3ʼnEjEPhuE@u `YM3qv 64IEME؋ESEЋVE܋EW3M̉}};E _5h@MQP֋rt^}uXEPu օtKpEuE u&YF;~[wSD6=w/gP;t8-WWuujuӋ;u3PxY;t E}9}t؍6PWunq VuOt];tipSVuW"`][9}uWWWW&tUE+EPRQLb$-ʃU1]0j j1S3VW9]Mr9]u.ISъ@8]tE`p} ;t˾{9uv( ?? `E9XuuWu fDMap;EMQPGE 53GMt;t;t+3[V395$Au99uuh<!'9u t܁}w^]Vuu ж^]3PPjPjh@hL@@tAá V5@ttP֡pA"^ËU=+AV5 Au3cWu95 AtSuJ" t@}t:uaY'PV N;v<8=uWuPn tu3_^]ËD8jh@葉jY3u3];;u% P_8V讈}3E ;t039u6tuYE;tXP讷GjWlC ;uň 躈E*uWP*@;t }@Vt8uE Ej 9M u H9U t @ff;u9M ug $jn, ]̍B[Í$d$3D$ST$t :tτtQ%u WV ؋ ~333ƃu% t,uu^_[3ËB:t6t:t't:tt:tt^_B^_[ÍBa%@ UGz;uH{ zD 8tߋM ;t؋;t8tSQR UVujXEU;uLP z S3;|;5*Ar'zz. CAčQW<*AƊHuFuo@jwwP]; t7@$EHjYtHuШtUE EШu!#z zSy4M;rEu|YE;uy8a ThjSSu|D(ET,AHttI tl9]tg@MED 8]tNL% tC)>)}E-P% u$*&S**BE& & SMQuP4,@{M;p;Mg4MD};t M9 u ]EÉ]E;Z << t CAM鐒EH;sA8 u A  uEmEjEPjE`u \uE}t?DHt} t ML%;]upjjj  CE9EG@C+EPED*K xC3@;]rK @Atpu |wU*zA;u@1$CQ| T%Cu&C+ؙjRP!E+]Pu Sujh@Eu4GP!wYME;E tPUzYEE3;EL0;tMf ff tf CC@@E%M;sHV Ej G|3E)OE)[)U)(f} tj Xf-- L%D& *=->d!dECCCtCffCC+]]j^;uuu \2}u0imY]\3_[^jh@uEuEu *K;|;*Ar!a%(V0t$ɋ*A L9t;MAut0tU`P8uD8tuu ? ~g E~6HpME Et;iVËU0S3EVW]]EН]t ]E E]EP Yt @Snr+Mu@u9EtM+útGHt.Ht&sPsj^UQ0?sW4UtuE@}EjY+t7+t*+t+t@u9}e### 42]E#¹;;t0;t,;t==@ExP/E @&E70=t=t`;1LEEt  A#MxE$@tMMMt } pERt6ujri MrgA E=@uEPuu*u ׉EumM#;u+Et%eSuEuPuu9446*AD0 \@PqYqtu@@;uDA PVC7@;u_q 룃uM@ uM.64ЃYYML rD$ MeHMEtqjW6 E;up8tM6jEP6] u}uERP6M;tSS6F]8;tE0@@}uE#u M EE#;tD=t)=@t"=! t=@uEM E]E@]E9=@ tw;$&;yvv0fE3H&HREj  87a tS'#ƒjEI /,  utk}uY0!@b4sP T C #k E%=u6 nj^0d=uSj6XJQA=AEBEa+PD= 9}ۋ $2M0"M ʈ8]u!Et5MZ<r }S!M|UvW jV jWZP@4@!mh 6Y6_^[jh@omM3u39u;u mVPV0lNruuj@uEPE"EE};t?@ABCDEFGHIJKLMNOTPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=EncodePointerKERNEL32.DLLDe,FlsFreeFlsSetValu G PAlloc< runtime error TLOSSWSINGvDOMAIN)R6034 An application has made an attempt to load the C |library incorrectly. Please contact2^'s support team for more inform.0f3 - Ause MSIL ; from this assembly during nativd\qitializ_ T00indes a bug in your . It is most likelyresult of callm!an-compiled (/clr) funcTanstructor orqDllMain2not enough space/Plocal10180#ine2CRTpthan once.h0dJad 28 `unable:"P heap& 27(DEwio 9868?std858pure virtualaPR6024(_onexit/at t7 198@opensole device,$expected 1 %un$multithread lock05data `requesRato terminate it)pan unusA/wa8AR600D|environment p0D,@argu)sqXPPfloatpCeMicrosoft ViDC++ L ...3EB! P' : = S  S      JEEE00P('8PW700PP (`h`hhhxppwpp%, $( ?H . 2&/B&/@ 7%8h]%&/8 f7& /' 0&&  󀁂  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~k ABCDEFGHIJKLMNOPQRSTUVWXYZ {qHH:mm:ss dddd, MMMM yyyyMM/dd/yy PMAMDecember5Nov @OctoDSeptAugustJulD@June8AprilMarchFebruar$!an DecNovOctSepAugJulJunMayApr MarFebJanSaturdayFri QThurs sWedne "Tu 1Mon#Su at<@Thu0TueMonSunGetProcessWindowStatioUserObjectInform0A4LastActivePopupG MessageBoxAUSER32.DLLtMonTueWedThuFriSatFebMarAprMayJunJulAugSepOctNovDecCONOUT$.comA.exebGQ.cmd\SystemRooa@H$A@@8i @0@ *#  P%@%@ Q(jh5@l5H *; @P  "k=@,57=@ h">( /#@ oMA@iA |*]G *+K /N &P &R( p*eYpHo [@[ [][@a *^@jH_@__ *j @p*l @*y @/ށ * * `/M * *[ "! &] "ܮ( * `@\fb -$<Thp$@^r &0@Vbr$2L\r"4FXjv$0@RKRGenerateConsoleCtrlEventGetExitCode&nWaitForSingle"Creat'ASetUHandlerV ModuleFileNameAEnterCrit icalSectionLeaveCrit$GetModuleHandleW+Sleep"GetProcAddressExip<CommandLineA<2StartupInfoASetZCount>$d0FFileTypeDelet7Terminate :eCurrenQHUnh`dExcepFilterSetIsDebuggerPresentb LastErrorHeapFree pAlloc\( CPInterlockedIncremK(%DeS<`ACP0OEM IsValidCodePage>TlsGetValue<} ? S=|j0ThreadIdWrite LoadLibraryAInitializrAndSpin KqpEnvironStringsAt/L2 WWideCharToMultiByteHAWCreateaVirtualYQueryPerformance@erjlATick0`a@IdS&SystemTimeAs& RtlUnwind"Re^!Z`onsoleModeBFlush\BuffersLCMapHUA $To!(&AW@|NJAC@W`Locale@A(~0Poi1SizeDClos".C0ANaOutput &0Wz%St"yuASCompareV@WؤHVariableAKERNEL32.dllnReadX242dOf& 0ʾAttributesA"+'  H#  >N@D#@l@\@ n'qTX     X<XPSx!5(AC@P4RSW@Y|lm pr@ PH)p  "0$4t (4,    abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 6 ?MhA`y!q" "@ 1@~ڣ "@0A0Ϣ[M`!~2QQ^ _j2* 1~:l@C#=9AS-U&Hdh@@p@AA@@ @ @@@@\@$@@@@d@D@@ @!@"@x@y@z00@mP@_@^qXc lj@@@@@@@@x@p@h@\@P@H@<@8@4@0@,@(@$@ @@@@@ @@@@@0$@@@@@@@@@@|@p@ .T_A)$8<L(@  ("p0HPST /PD@+AA} ;Z0NmT4 :Yw/MlY l@d@\@T@@""" Launch the Python script on+command line after setuptools is bootstrapped via import. ^ # Note that 8Cgets) ed licitly byv # invocation of thisrusing p'-mW!.l" tokenizesys def run(): "Ruin sys.argv[1] as if it had been invoked naturally.1"""__builtins__ script_name = sys.argv[1]@spacQdict(m__file__=A,:__='__main__'doc__=None)9}):]1:] open_ = getattr(tokenize, '0', L! ='_(r).read('Rnorm_s5.replace('\\r\\n', '20cod compile(A", IL, 'exec'5 (: , R) if _/f__ == -: run() MZ@  !L!This program cannot be ru; DOS mode. $Z#^g?Q@d:?p\c?ymNC1_m1I [f?RichDWPEdQ#  la+ @ `2p% 5<E"HQ( S` )BF.textԣ. `.rdata)*%@@.'5 =:-b@.p)` (gX BH\$Hl$Ht$H|$ ATAUAVH LH3IHэD HyHcP 33Lc"HXL~e>A ,\u'"u ~DƲ\Hˋj H+\H3A,HHI;C|~D555Hl$HHt$PH|$X"CH\$@IH A^A]A\ WH`HH3H$PH HtH/u@\uH$+L$@LD$@HT$0HHD$ O|$0 @\= =BuH|$@Ha HHHȀ9\uHɀ9\tr;r 'uLHD$ Q  $@s HA pH H$PH30$`_rH\$Hl$Ht$H|$ ATAUAVH HH3LHPHH 3HA} LE3HetDKHPu+H@t[@8BtEtI@\u@"u@u3E@2DtLDz\H H3@t@.H뚅##AEIcEHI45q& 3u;GH\$@Hl$HHt$PH|$XIH A^A]A\RH(u !t36H()̀WH3RHL$pDGh3҉$7D$PHD$X`WH D$phL\$PHD$pL\$H1@80E3E3H3ɉ|$(D$ @u(HPH`rPH$ Ī _ËD$`HL$P _iL4DWW,WW9 o/0W2LIIcH;HHLLQ}J<) IHDL;|IcHMHL 2IW Li}0LIcHI"#t*t%HcHHL)HkXIH % H  HL)B8u%FFHHkXI A8t"%H\$ E3E333$;u*HMME3HT$h`H׋fH8A\_^[H@SH \;u;LHcȺ9;&H +Hu$PHˉ;%H*HHx3HHH0HHt H*rEHILh(IHIHkXLIt ItMuIH0Iu3H [H()=$t'H F*H(&@ HH lH;r:H w.HH*H+HHHH?L<+k HK0Scl؃H}.VJ0%.̸PHqr7Hew+qH+ʐ,) H0ӈ(}r))d$@LD$@*69D$@t# t "L$@HH{`ffHIrSIII@rHكtL+HHMI?Iu9 ItfffHV IuMt HIu@%ffIs00&QHQH@HQHQIHQHQHQufDHHQ3@Q5@Q u $TLLM t$H+t(HItu IHHHIr&I~LLIM3ILMtI_~_x$tuQiH&#tbV"SG"@4"1%C!a<H3IrEt HII rpQH PsI 0r #02Ir bDEHLAALtA@McPLHcL#IcJHCHHKAt AHLL3IQMA8HI k 8HD$`HD$(LL$ MLH(8H\$LD$UVWATAUAVAWH0L$L$YL3MʉT$pH;t L;uL;t~PL;u H9$u RtL; RtL; "t8t HHH;w;:u,L;t!I;AI)3H{,AHHH8te (%+;tHI!H5rCu!9= u42 tX/*! ** ]**60@y #XHyA s |@,,si= t%<@|$lT$pA DEL3HgD$ u7\uL$I[Is I_H(BH(HHXHhHp HPWATAUAVAWH@MyM!Iq8M+AfMHL3HHL@9>+H^ CL;CL;{;tHL$0HIЅ~sA}csmu(H=tH 5d0t IKAM@B F@SMcMHD$(IF(IMH) BH;>sj>3fIy 3I+9.vTH^KL;r>+s6H;r H;sAE u/;t H;t#HT$xIDZIDCMAj1.r L\$@I[0Ik@IsHIA_A^A]A\ \$H|$ATH H!B 0oH0H;u3`wmJnC ucL%HcI<u+JIHuHC HCHC$CI C$C8HKH Kpp3H\|$8H A\Pt0Sb HsHcc$H#Hc [8@5,B@It HzuA&Bx HH,u [̅~LHXl$Ht$ II@LH@?tl$8Ht$@R P0A@UHt Ix7~3Mj HŃ?u=8*u?́6UV HH3H$HL$hHHL$xIMD$`DD$TDD$$XD$PdE3I;uA3E3E333+\$ 8$tH$AC@L ?P ?4wA;t(t#LcL sIAHMkXMɀC LL PA@8u)>>HcHƒHHkXI6B8tA/ A1t@/ADT$@DAL$A:0$ rA;HHEtkH>teAEt^6uHLA;tILcIHAMkXM$HI$AEAD$IL$*:qAD$ RIH;|EIHHkXHH;t H;tKCAD$ɃE;DHHtJSEH7H3uN@ uKHK.-C .K@HAHHQ  3L I[ Is(I{0Mc8IA_A^A]8Hu%*Gd$ .)@?AH8H @SHd$p`t3A` L\$pH$!L\$HHD$PDz0$ T$@HE3Ht;Hd$8HL$`HL$0i@XL $(HW  3 H$` D$pD$t$PH$3ɋHu uH4αF/ [h\$Hl$ WH0HH AIH@LT$`DLHHLT$ %] 4p\$\$ hH\Kl$HHt$PH0_PL #ID@; t+IЃ-rAw ÁD,AFHADH(wu HHH( W   @SH 3$$P2LP;`H YHX 3HHd3_Hu(9Zv ȯD;BG;uHl$87@@HI0n%_hHpHx ATqHAE35i{*9v"{M{!{AGA;u}|6A\à CHHH /Ht*9YPǮAAGA;u  AATAU AL`g!A:D;PAAGA;uHl$HHt$PHH\$@H A]A\_Ht7SH LH 3uSHfA[H\$Ht$ATH03Nj^\$ ;4}iLcHJ<tPJ At3tƉt$$|1HJ H0H J ALK$É\$ 돹Ht$HH0A\ðWA3H$<u?At69+y~-SDNj:;uCyCK HKcw`t$8H m0,_,@h,HHu5,jtcsH;3J0[oH|$Ld$AUAVAr0DE33|$ A;=LcH~ tjJBt`H^ @ 5Au9A;t%ADd$$EuAtADt$(HFǑan@@\cADƥ|$XLd$`a_A^A].Xty> L%33I܃{u%HcƺH HH H "t-HHH;|ø#|2\HcHI$3ی0l$` H!i-ZHH7HttHЪ|H'HH;|H  @)H;|0l$8* _HcHHH H%7(UAHcپ= uN HL-UI|t{(# #Hu. 0Z !Rf8!u/ v u u;I\ !b vHX0\$0%8H]zpcH= H<uauH޶" I _H%Dp0IH23HBHH;s$Hd$ E3E333]3]H_`HDwH PL*:-=tHHtO  0x0HHHa@HMt!AtP; Y:HIMtAA9t;HHˆHÀ:uI88/t8\t-sm\HHL$`E31S@H9u#h#1t+<.t"+u(.H;;GH;vE"N00#t W @HHL$ AAAD$(DA|u`D$ HpBY#Ʋp|$8t 0PPXH@p‹AQE3($s2ZA8H0Y78HL$H-HIA98'AIH0r _;T$ 2N3A~^ D9d$ "6D$&8\$&t-8Xt(8H;w+HT7À II+uH8uHFINt(t tA;t0 F Df^H~ùf9t?HlmL{HAMDIA8t18Yt,A;wLL2AAAAM;vH8uIMM+u~Dft$t t A;u"^ HVI|0pfH8`|3p8H30$@A]A\_^]HHXHpHxL` 0A@Au D;C \$3H;|z2QHA#:;HAD;$Hu L%I;tL%H.'  C C @  ׉T$ LW}HcDKfAH=#1+}HcʊDB *%|$ #Hcϊ&`0+ pHuH H"+u&L%-HtHW3DAH\$@Ht$HH|$PLd$XH0A]H(= u 3H(H\$Ht$WH H(HtyH sH;tmHхta8u\H t9u;HB0C>*""!="U' F!0:0tGmPBH80$HH+P'B+G" X@ pt`!Aa;! u-P{XYaH9GtHHt 0M(tHO3 HuH˩08H _Hn@U$tC0RAXA0תPt HHCHxt HP IuH0 HAD fDH=D  0D0H"@SA't@$@$Ƅ$DJ!ƄDHL$@T$8L:AD$0AH*D$(HD$pHD$ 0u8D$Xt HD$P3D$p#ŀ|$XQL$PL\$`IkIs I_ HXHhHp HWH KHcu K 4@t "r3t{$HCHKC{C u/3H0H;t%`H;u i;uH;C+HS+kHBHC$;C~Dŋ!W K?t#tHHHHHkXH H A t3ҋDB:HHKD$0 !0DC{;D$0H\$8Hl[0t$H-\$H|$Ll$ AVH0L53I;t Hr* <>E|!<1 =9aH=AL `pI6<"tHd$ E3E333HA3#5pu1L_ 3QQ HHLH t/cI;I+LoI0f(I;sTH;HBHH;rI3H;u3HV H;rF;t9HHH d1qHK !O0ó0@H@|$PdA^A]A\ Hd S@C =<HHH;rb0X)_888a ]@ mWunHMZf9t3HcH  =ptCHcxPHx;  rLH+tHd$ %]HHcH؀;uH#vP0%_'k@HPH0_H 9HHXHhHpHx SLl$`MIAepHAkHtLI3;"u3@"HË9AEHtH3t! H@tu@ t@ uE GH3;; t; uH MtI<$IA3'$;\t;"u6utHC8"uH 33҅ɀp\HdzutOu< tG< tCt71tH9 tHbHY7ChPBI$$AH\$@Hl$HHt$PH|$XH A^A]A\H\$Ht$ WH0=uH=A HrPHH=HZuHHD$HLL$@EHHD$ Hct$@HH;s\HcL$HHsQHH;rHHHHt8LX5HVQgD=A3DP(0_HHXHhHpHx ATH@ E3IAt$A;u2I;t m"! _xDΉ S I;u@pu3@fD9#tHfD9'u `Ld$80H+HL3DO3Dd$(@ "UcA;tAH/1#C8Aa3ɉl$(A;u HIHŃs;t A;L!:D8 tHD8 u+HcTIaI;uY\LHHlA@]ǩ0l$X` hH@A\̉L$H(E3088@Ӂt#LD$0AHD$0PQH(# HHd$0H2-+H;t HHvHL$0炲\ ԂDI3X #DL$8L\$8L3HML#H3oL;LDLILkP@H `ffHM3M3Hd$ LD$(NH:@fDIT$DD$I $-`H8u Rx.; s&HcHHHkXHD@"lQ E3"3O3H8@Sv@ *D$ DH@BY%|$8t HL$04[ H_3J%HHtft_uIQ~I"HMHLHI3I#tHPtQtGHt9t/ R!t uHDH 1cH9  fDL$ UV`3IHHH;uL;vH;t)3 t Iv$=Hl$ oH$HL$@T^L\$@A9k$f;vLH;tH;v L3H蜪c*X@8l$Xt HL$PH$H`_^]LCH;w<$"E3E333ɉHl$ 9@MhHQ7H;tv@)`D$Pz $AKHD$8g20L AG3҉|$(Ht$ L~;t980;t}ze |C%XgBV8Hd$ H8Ã%H\$WH HHw|HHEH YHu c10_.Q 4|HHu,9+tHQt r Jg H+R3H\$0Ht$8H _̸@H H&jHu\HwCH QHDرfLo9wtP!p+Hvt0{=|$03HHHt13HGHI;s#5GF!|$ !LK3=IHt%@HmtH;sH+H 3Lp@pUHH0p#@0&ʅu#H!\ FAt:X`ˋ* ;(yHK(@ ˨c(cǐ(aHL$Hك3Hu$ɜ& +&A@ta认` +(y H UVWATAUAVAW0jH+HH3H$ 33ELHcىl$@Eu3Hu.!8gG }[~LHIAJ Lt$PMkXAt8@@@t@u AШtAD t 3ҋDBHJAD3HT$XH*pr9YI y%t @y!|$LI܉D$XEwDt$X `#T$P E3 H-$AA|Pt ADLL$]AD$\AdPHT$\It4IH+IHdBL$D;`H5*@vRA)0H*$!U!Pd$8_0L$XHD$\LD$DPD$(( ' CxBAp H 'q LL$LRrDwRBA+|$@9l$L9`EnV@l$\H WDEH _3\|$L|{D$@e=CuE3f frH#@u6L$Dh&f;D$DEtfl$DIFuxD$@A+A;\$LLt$Pl$@ze7 L; JLADLJDADP^v4HJ AD3I@ES Dt$@H$ 3ɋs&EH< u AH`H rH!\$ H?DD+H(Dt$@LL$HH$I ut5|BH+HcD$HH;Dbź Nu@A"61EHf ufAHHf0/A toJZ?A`NA uHL$p3ҩ.P fD@HfrHd$80HD$p+L D$(U +3DHD$ MtD3HD$PP HcH JEH H 2D+ st t$HD;MsD;A+A;@CQH!|$ TEIS|$H3" rS O~H##@t A<$. H+H$ H3H$:0A_A^A]A\_^]H\$Ht$L$WATAUAVAWH0ELHcكuV38-{ @3;;SLIL=HkXKL0u+V$VH|$ E3E333m%A D0tEIՋH!Zd&) E8h' o~oH\$hHt$pH05"4/@VWAT*HcuV0=QHH%HkXILE%ſWd$ "ھz$;Dt+K$~Pq`u pf3ۅt艿bc>%#I4|^| `A\_^H7PHHHu$A03vHtH;s3B0I耢L\$8A{u|$HHCtHHL$@:HSHH;w BDuHH+ʃH+<(t 8JP_E3< CHl  HPE3IIHHM;uIu 3>I;tI;vD)M;u?D)ELl$ L\$PI[ Ik(Is0I`H$2sL$0hHHE9ku L+LXD8l$HtHL$@HuHƈHA:t.Hu&  tHuI;uD)HI;a.4uYLaIL;rHT$0'A;tHH;sA+ƨt*E,$* q\HvOHt+HH;ff%fH;s+Ǩt D.XQD$@%PDl+D+i"E3E333ɉLl$ ~G0aN!PH+H|YHq!z+D.H+@UATAUAVAWH`Hl$@H]PHuXH}`HH3HED$3MLMDEDUHDnD;uOLwEͺ3ɉ|$(H|$ lm;t ED-ҽ>lDýxDDDL]DMpD;~5AIA+@88t I;uA+A+A;} DHDMpDȉEpD;\D;SE;D;uHD`MA҉ AlLcD;<H AA~[3HBI.rLKL?I;w.HAH;wHHZ\H+H|$@HHtD0H%GMpLEADk3;KUL$(HL$ MELkHcA;!TUA s;X;;/MD$(HExH`AHDak52~`1HQQHL6*#W[\$@I;tE3HI;DUI5tnPA҉t\"t? 3p8DL U0;u $  AOjHKD91uHOHLD;u GpDu_uHxAh u3L}xP;<0LMpЋω\0 eH;tDMpULA#@jDMD;u";˛~bIIwYHHw4HYH;w HHY@H\3t%@ؘ MHu3Mc3H{D]@MDQLHJiEu3.pLMLÓ`AL>}L3L;D(g!>l>1A<&h3H;tH5L;t M;tI#HMH3! ]PHuXH}`He A_A^A]A\]`Ht$A pHHL$PIA$a$@D$8$D$0H$ ˀQ($80Nj]O|$ht`L\$pI[IsI_D@0H]@HuHH}PHH3HED LV3MDLwD;u=LMHqDNjg;t=6|fD xDDD D;&D;bCuh;uIEp]xDMXMҋΉ\$(H\$ ,gLcD;A~hHL;wYKL$Hw5HAH;w &-HVH+H|$0H;HH;t D(HH*M3HM蜑?Dd$(H|$ vf(LM`DHA? wfHOD9)u諶aepHD;uJD`(`A"gu3U;t$L:":7SPLHE`A@HDeH;tHHMH3  ]@HuHH}PHeA_A^A]A\]jHt$WH`HHL$@AI$a$ D\$8D$0$D$(H$)aLNj֠.|$Xt HL$PH\$pHt$xH`_`ff2LH+Irat6t  IȈHtf IfHt MIuQ tH HIuIM@ aIuIffffffI sBQLT H HALQHD  IHALQuIqffHr  D @HuH"@L ZL LQLL `LI P(H@ `uIb0I  $|ffIȡ4HɤGHBH22uP 0T97c0D @HPLQQL gqALu՟sBw0H7Lp``v IAH Q HSH HHI QK 2 2 2( 10 1 BK@ 2H 2P 2X 2` 2h 28 2p 1x 4"t 7"h ?"\ W"P "D "8 b,     o"            b         ( x 0 l 8 ` @ T H H P <  [HtBSH H H H; )tHKH; RH; H [HSH HHIH; M)rK H; R(H; R0H; R8H; R@H; oRHH; ]@@v0LHt HtMu,D謬Hd$ E3E333ɉH0[À9t HHuHuAAIHtHuHuAN"3̌MMuHu 3?HteD /LLIuAIAI„t,Iu$ tIu{E MfK DDA@PuUmdHaK*a&_a2LLVAIMlPI"Ll3`ffH+LtB :uVWHuIJ ffwHJ H;uI*~LHHI3ItHH3ffft't#Htt Rt u3= `Ir"f: u,HIuMIuMt  uH3It7HH; u[HAH;D uLHA pu=HA u.H IuIe$t@uI‹ HHH;~qH\$W cAHT$8 ou- ZWT$8LD$H iH;t2?Ht(HHtH QH;tBH# #DMI"\3H\$pHl$xH@A^A]A\_^H8x ~ u1 #Hd$ E3E333$H8PHu&ޤ1 LH G3WHF̹Ht vru 0 rgt_H$gUHL$03A)uH$X3HD$@HD$0D$0@A HA C(F TI 6HHXHhHpHx ATAUAVHPLHHHEMvMtMuMu*诣d`)Ģ|$HEt A|A$A.LD$03I^A ~L`@ͺA2(I@Ht@+H뾋$@-u@+u ESAI B$?u(@0tA8;xt ;X&A0u. u&;Xu@kHM3҃ADȯEJAt @̓0At,E0<w A;sA;r"u;vMuH@uMIE3YA#둽@u@u:ƃtwu';v#"3t @$I]@tt HL$@(P@8|$H QD$@ 3L\$PI[ Ik(Is0I{8I0|3EL‰D$ H9;u H R3Qj8H\$WH HctYHu @u ;u@`tH<;t #?Su Q3ۋLHHAHsI MkXBDt ֠^a0H _Ht$ L$Wl H0Hcكu耠38W 3;;LIL-HkXKDL0u+'WWeH|$ E2aBD0t 轟)ğc c!c`Ht$hH00@SAHt"AtHI֡c3HHCCO [<hH-H3P="fL$@tfH pu " @CLL$DHT$@A@PQ0=͑Oxu}% Qed$8Hd$0șH!@Aop3D$(qA8PI t0:% HDPtfD$@APBL$PH31hd`Hl$i*P3IHHH;tL;t @8*uH;tf)k`khqpHP_À`Iz\$0A9ku%H;tf@8l$Ht HD$@HHT$0;HL$0D A~0A;|+IH;LǺ D$(H\$ tO9p;uHc=H;r(@8ot"@8l$H4e @#*'t HD$@#AqAQLLJAD$0HN;E3+Hl$Ht$WH Hڅxi; 'saHcH-3"HHkXHDH<u==ju'tt ux0 NJ<3J( H\$0Hl$8Ht$@H _̰xs; skHcH-^HHkۨDtGH<t@=)`3MSDH %a/vH8uR$%*7]x1; Ğs)HcH ОhƒHHkXHDtH,JHd$ E3E333C  H8HHXHpHxL` AUcLIL-V2kXKt\|3 u3O 辡+HL3#D3 蓠tKLHLJt|$@Ld$HRA]/ΝHLH%hJ|$Ld$AUAVA @IEE3AL$ #uA 3|$$H_@LcJHj0JH H;C{ u;YC HK u DpDt$(C(kEu/BIZ t ?|IH8u?CL#LK+H.袋.HLIIH?LDDl$ HX:0QHf E;KXJiPWttHcL%IЃ I H(s@L @ ` HXHB|$ HcHHkXIDH7pADD.p9AG``H|$hBpH@A_A^A]pH{H3q(LD$ AD$&Iu HL$ {L$(H3{C8@USVWATh0l$@H`iHE0LE!3IH}LMDDH];eUTH;Ha}ZUA5@uzEAt`A3PcHYH;L HwlHAH;w *$H8H+H\$@Ht<NHxELúPAω||$ Ho37VHtH3c Lc3HMOsLEE_K)HE3A'M;t;L|$80DL3ALtAG8ID9}u,L|$8L|$0D'L3AD|$(L|$ JGA;tWHc׹fHI;tB'8&0DA@0HD@" GA;u HI AtHMHK9u蟗[@HM0H3xHeHA_A^A]A\_^[]3DB yLMtt_+uVH#@tJE ñH Ht2z;vH <9=u0FtHHHD8}0xR8H xH|$ATH0IHH83Hu&ڑy Yp@'H@H#???#?`zHu3fHL$I(nH%C Б1LI;t atL#3`Eí@0HH|$PH0A\lpHcHL$P}tsbHT$P ~LD$PP膫 T$PH@xtHHҶ8|$h"`@ZbD$Pb06P@`@$ $Ƅ$ K3*'/!Ƅ.@PD$ALLPAAD$8H$D$0RD$(T$ Q Cً21`t $U 3L$`tAH$_p_0s`HH$IIrbu8\$X9P9@39`u:H!1Xx?lpHtHl"HyuLL/׸1AQ @-\$0LAb|$(\$ r|$w3L$P L\$`I[IkIs I_E3\$Hl$`@pPH_ HJp 8 0 DH?Hc51H϶0bD$PHtz8I`LD>!?GQP3yHL$PHt $Hd$PHHHY3H\$XHl$`H@_HL$P@USVWATAUAVAWHhHl$0HKqH3HE(HD҉U͐A3MDELH}Ec;uOL8IE33Dd$(LD$ ?;t AE\$=wVxADDU`yD;~YAIA+̃8t I;u΋+DD,13q~5AH3001D)D;}3m|A;ѧA;uD\uIDiD;t D;E;uA\ ~AO ~ @HUA=2D;~2}r8]HEt8XtA:r:HvH8帊p9!~+::8Xz==MǺ A͉\$(H\w=LcD;I\~d3HBIHrUKL6Hw.HAH;wIH5-H+Ht$0H;HH;tHHH|CpMAADtt <70 L <D;~gUXKL$1% H#g,|bt )(H tH;tVDBEp0H|tUMEL V<HO9'u/HNHLD;u IDPDUDD`Ae;A;teLMNjA4LELz9A+ H;u H~4`L<2D$.MT;DE 9I1HM(H3/l e8A_A^A]A\_^[]Ht$WH`HHL$@IAl $0$dD\$8D$0H$P$LDNj|$Xt YpupHt$xH`_̌aHHnIIkHu8\$XOQD$PO@3†ru=诇 E3E3bĆ?qB`tHwHD$@PuLLHH>@LΉD$8\$0A(+uyiT$U0E3LAI;u$跆RLl$ pqͅ!M;=IHD$pI;*P;68hH5{EAH;5{upHAI;EUHL9.uO@cHI;uMWlH.HHHE( L/H|$pl$xH5~{I;;t9L9-y{t0fdtj贅dH$H)0A_A^A]A\_^]E;t3߹H{I;tL(L9-{u"!" "rL(H5zHI;tHHA+LcHt?HMIuHA|=A8\HHHuH5zH+HE3A;L9m2cHLJfL9ltHLHHHDHuHcHpH;L zA@qp|sH5+rLdM.]E;A;}ߍG;LcgL;n_RHbXHcL$LlM.HyD9l$xB`HÄHlMHHPHA;tE3E333Ll$ 蟁8HI+HT$pD*HE;IE6ui*uRg qօM.0*\$Ht$WH0H@F<HH Ht-HVLH*tHd$ 00 3H\$@Ht$HH0_HpPHًHL$0IWf3H;uD藂T@ @8t$Ht HD$@m`m hHP_HT$89ruH9HL$@9. f;t3DtH@83t ;u HC;tH Ol&HfE3:t Hu:uH3%X2%2H8f0&  gm9tHtHȀ8tE3N 8T$L$SUVWATAUAVAPXAADd$4\$8A;u,38f 3D;f'LL AIKCHkXD1vɀa a;]$;tD|18AEAAσtu ШtLd A;AB؋LH;u,v \A  =$3DBL A@<AKTL\0@ IA D0HL0 A:AM5 AAIUAhDD0 D:tb!L09A:tQ;tM AHAh3t9Au.@L0:4V;t41@A4:LD 1H|$ 1;HcT$0;ÍL3?KTyA;tA} uL0d0HcIMIHD$@L;: A$< @:t HIf D$@HL;sID$8 u I}KQH$$@ 1A3I 0au 9/ {9|$0tuLP>QHt"Id t'@+d!D1 GI;u'u 3O{H]% L=tL=@+HL;d$@KCD0@uL0 A$HËA+A;AI+uIAI;rI+AB84t B4;u}*A;uHcH^KHt;I߃L0 |KI߈D19u:HcH+$EHc2D$8L$$+DMʼnD$(3ҹL|$ .;ui-|Dd$4;HsHDBo+uL:}4  +.`M;"t ! Aj[!M;tI DDAiU+u/za D muD뮋Hz3)z8y<E3E333ɓ@ yHXA_A^A]A\_^][H\$Ht$L$WATAUAVAWH0ALHcuy3ۉyf 3;;=}LIL=}MkXKBL u.\y5 1KxA;u+> x8\$> >n D tDIՋsI x) E' !wH\$hHt$pH0vHHXL@HHUVw3AAH@ox@$xEtxAl$pDHL$Tt&tAur@u |$TtE A A#Ⱥ;tT+t:;t1wf wl dPv(0@tuA@D$=Pt,#8@uD;A AϋƺL$H#tF=t8=t*=t=t&=>;t/A` AADl$Ps'l"$AEDD @@tAA` s `@ t @tIu!Ivk v [@w@$cD$HH$0|$0@`AT (0lb(HD$XHJA#;uCt9DD$HH$HT|$0ALL$`Dl$(A׉l$  (HD$XHu;Hc L-0yHHHkXIDdj&uBu81%;uMH xH"H4=uHL$XV';ut A;uA@ uAHT$X %m{mP@D IHkXDtHc !8A$HD$LEAtx Eă D$D-dt8tP HT$@A!@|$@;u|$@uHcT$D t E33E ^<@uD$T#u #=@tJ=t,=@t%=t+=@t$=t=@u($#;uD$qA@ |$DA@A%=@$ 0t|;-;vv8lb#A+ ,PD$D3H;t/ne|xDAbaA;t >k|$DuD@DD$D=u\`r!u#RAsDEE#B3p";;vqA;E32o`8 A HcEHTDD+NmD;daHc @@@%&d8@l8HcHƒXILƀd8D8@8|$Lu!@t[HL -PV@^#D$PDD$HH$|$0D$(@D$ AQ#`6!pLcIA2Mk۾Bd B8AHAHkH H$Ȅ0Ā,_A^A]A\_^]HĉPL@LH VWHXH`E3HAEu( pAHd$ E335oh0$iHD@d$0D@DLYHL$DvD$H|$Dt9t(Hc|$@HHpLcs!|$@n &t so0HX_^@SH0MHHHu&Go 0\nUHtHL$ |XLD$@IH L0LD0ӹ 9LCfq!\ `H0[H\$LD$UVWATAUAVA 0E3MLHHI;u(n~SLt$ "mD81tI;tHI;tD80t\`v/HfAI;I;4W9HR!;.IHXH1 #sLl4* u;tkLHH'33Lt$ VkH~ I;tH;vHHHύS/ HI;t&3 A;MIHHlIL`I-nI;LIHA;tE3E333Lt$ 0"L4lM+D8I.kZElIcH A:uEIc/@8qt0y:u*8Yu%AFHcHpB)BtIcH8tAHA+DDd$@H9ut'97 HT$hLtRHH93uDA̺0d L$XHHuKI[fE3M7cc D$4FpDd$0Dl$0Dt$0@H|$`ILMuH8HT$HHtH!t$ 0Ya!mHHHHHtVHt$HILHH+H起LgHd$ 4# MA F_@ O "L|$XCI?H E+IcHHXIcL&@HL~QKALa++I! x`PM苓"KuD9t$4Hc\$P HζS%`LZ??+ _~0L$8,a'LH111E3I;tI;?uD7H@ W7StSU8L5m@d'L$xH3EHĈA_A^A]A\_^][@SH0Hu-ja B)V`Puu%@ )'u!tta `  3H0[H\$Ht$WHPHًg0I3]DHu6(!| _@8|$Ht HD$@3LD$8A9xuBQ,cHL$@,6U HBDt%HÊ t ;uH{Hu H;HDHÄu8L$THH\$`LhHP_E30l$3IHHL;u3VL$0IPCL\PkuL`E+p;uqHM@8:VoMP:`i !a0 J>9 9w  ^@X+}Dt7}Ht'HcU@HHHL^HkXIdU@0@]Ø b3"2H`x"p.BVr"`$0BRbp~"0J`z"X(<Lbr" x(:Lt @x@j"S"_"h @"Ȭ"\ failed to get exit code from process. (hcreateb %s%sRCould noL ec an find Python executable %s *1#!pB.exe2C@Aopen.-script.pyw!CorExitPmscoree.dll(nu )8R(null EEE 50P( 8PX700WP `h````xpxxxx'8@r  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=runtime error RTLOSSGSINGvDOMAIN)R6034 An application has made an attempt to load the C library incorrectly. Please contact2^'s support team for more inform.0f3 - Ause MSIL code from this assembly during nativd\qitializ_ T00indes a bug in your . It is most likelyresult of callm!an-compiled (/clr) funcTanstructor orqDllMain2not enough space/Plocal10180#ine2CRTpthan once.h0hNed$PR6028 `unable>"P heap& 27(DEwio 9868?std858pure virtuala4(_onexit/at t7 198@open sole device,CR601(expected&(1(%un(multithread lock4X 5Fdatai  `requesR}to terminate itApan unusU/wa 8AR600Xenvironment0X0@argu-s.`0pPfloatUpointGeMicrosoft ViDC++ LQ ...3EB! P' : = P A EEE00P('8PWPP (`h`hhhxppwpp, $( ?H . 2&/B&/@ h]%&/8 f7& /' 0&&  (2󀁂  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~k ABCDEFGHIJKLMNOPQRSTUVWXYZ {qHH:mm:ssdddd, MMMM dd, yyyybMM/dd/ `PMAMDecemberYNov@OctoDSeptAugustJul]@June@AprilMarchFebruar(1Jan0DeclOctSepAugPJunMayAprH@JanSaturdaH3Fri uThurswWedne"Tu1Mon&#Su`atFri@4TueMonSun GetProcessWindowStationUserObjectInformA6 LastActivePopup#GeOMessageBox:USER32.DLL0SunMonTueWedThuFriSat FebMarAprMayJunJulAugSepOctNovYCONOUT$.comR1.ex!.bGQ.cmd\SystemRooe ' t d T 42 4 pP Q !$ QHI$HIdJiTRX Kp00bp`0+Y@J 4R p ` Pr0042 p  4 2p d4rpp'(XpX2P d4 p**+*+z d T 4 rNpt42   20dT42pdT42p) 4dZ p`P  t d 4 lb::\=  0xt dT42 d T 4P0 p 0d 4R BCh t d 0d[DD0"DDtd42PFF@\ T 4Rpd 4 r p  $ 4 QplTNkN4r @B8 t d 4 fR;SL0 W!W-l$LWWF$W%Xf424fYY4fYY4,T pd T42p t 4Re2(``B Gbzb bbb d4r P@ffxPb,Tgcg t d T 42Pd 4 R p t d T 4 rB  4 2p4p ` Pd 4X8RpRP4 +vv^0/ 4qf p`P  d4 RpT =.T4 R p `|c(, p dT4p- Etd4C X(4 p1 5#td43r 884 p2 0 f  T4r p ` tdT4d 4 R\g420¤PT42 pp td42ДKkE0 4 A0m^0ŧ~b (' EC p`01bt d 4RѭpD T pdT4p 4 r p$ 53ŽHv4R p 4 Q  p ` P 0,g8! !4!p`PrPp`2R0d d T 42dd4 P 0# 0P0(xplT 4 p0bbf ","2H`x"p.BVr"`$0BRbp~"0J`z"X(<Lbr `C(:LtMSGenerateConsoleCtrlEventGetExitCodeProcessrWaitForSingleObjectCreateProcessA2d0TTypeDelete;Terminate :eCurrenQLUnh0dExceptionFilter#SetIsDebuggerPresentcVirtua0LookupFunmEntryCaptureContext LastErrorHeapFree pAlloc]( CPC T `ACP,0OEM IsValidCodePageEnc oiXDe@FlsGetValueAS?~VThreadId>0qWrit LoadLibraryAInitializrAndSpin L}EnvironmentStringsA/M2 WWideCharToMultiByteHAWx0Setn0rma$1 CreateSQueryPerformance@erjATick0h0@IdS&SystemTimeAsQimeh"ReM>GPModeCFlush@BuffersLCMap4UA$To (&AW@hlJAC@W`Locale@A ~Pg!SizeDClose0AN`Output&0W %St"zuASCompareV@Wݤ4VariableAKERNEL32.dllhReadX242dOf& 0˾AttributesA6WE@N! H3'0 u 2-+] f\)@"$ !;|     X<XPSx!5(AC@P4RS@W`@Y|lm pr0@ PH)p  "0$4x   ,  4 0  40 < Ht   abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ _2_   abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ m(@`y! R "@ 1@~ڣ "@0A0Ϣ[M`!~2QQ^ _j2* 1~:1@"C F"@-a m/P2"`# "0P\x "XXC( "  `("0h@"` X"@""0Px@y0# CC"h50"P(LHD@<80( "``|th`P@84(@@@@ "0. "@2/lB3PXtwP "p@0PST&/PD@+" 3" 4;Zx0Nm8:Yw/Ml8 "80( l4xY` d $_m<xZh\Sb$bj$Sl S$bT0b0< "d"6#p#$<$$|$5%&5&$S8&q St& &&&'' 'N)))T)++++--U.4X..D..H.)/L,//`/:t:=TR== =>>q? ?? "B@xbD@@l3A4A bADBXB B4C CCC`CD< DE|<REFx FG "LGG GRITII IJZK \KK`KM MN " O4Q( QSD$RSSD"2UbtVVVAWt `WW0W:X @X0z   S "<- F _ Sf  S "". E "^w S~ 0P """Wheels support.""" from distutils. import get_platform Temail itertoolso posixpath$re zipfile from pkg_resourceszDistribution, PathMetadata, parse_versionDQsetup.extern.packagingXcanonicalize_name@4sixpep425tags".command.egg_infoq,write_requirements __metaclass__ = type WHEEL_NAME = reT pile( r"""^(?P.+?)-^q>\d.*?)2!((Sbuild!)?$pyA6abi DM)\.whl$""",re.VERBOSE).match SPACE_PACKAGE_INIT = '''\ try::"__I__('K').declarqspace(___) except ITErrorPH [!')and_path(_F__, Y''' def un(src_dir, dst )i '''Move everything under `1c` to `5`, and delete the 0er.opfor dir, 0s, i in os.walk>subdir =#C@.rel(S 3qfVc7srcPFjoinMfG+=dst+,", +, 3Qos.re\T@n, dr`sed(list(enumerate?')) dd+ 3eif notgexists(dst_# Directory does:2qdestina" 3"# 1 it8Pprune s .<[ a5delf1[n]E# CleanupT?1diro , topdown=Trueaassertot@mdirA)  Wheel: *__init__(selfi}6 = =@(os.VA.basr()2if :zis None raise Valuej('invalid w u: %r' %\.t% ="i@k, v.groupdict().items(3setattr(self, k, v) def tags(self):q'''List) (py_version, abi, platform) supported by this wheel.'''M return itertools.product("s.j.split('.'),(?abi! &is_compatiblebIs theF is -Q withucurrent?!_h = pep425 U.get_ %()1next((True for t in &=S() ifc), False}egg_namhDistributionqproject=={#,  `=(NoneGA == 'any' else 2'()%).P) + ''8dist_info8, zb# findporrect 1 of.=-=@ dirhEfileQmembe%0zf.FWlist(=0dirosixpath.(A0Cif ( P.ends]&('e') and3canonicalizeIr).startL;C?+))8=_raise ValueError("unH;Fat. not found"install_as_eggpdestina7dirB'''I5kas an eggiectoryh@ zipc.ZipFi.v) as zf#_ 1F/, 7qP_base = '%s-%s' % O,"dD=" 3+zf+Bdatak. mCX1os._join('EGG-INFO'Kconvert_metaq?(zfq,Qp._move_E_entriesI& ?1fixGspace_packages(@staticmetho`_*!ef!#Mf.open(pzjoin(dist_info, name)) as fp: value = fp.read().decode('utf-8') if PY3 else& Hreturn email.parser.P"()Astr(n%) >wheel_metadata = get('WHEEL')/# Check 7 format version is supported.3+_$!= (p.get('W"-VV&')~-ev1 = (`O T'1.0') <=l+ <|'2.0dev0ldif notB1praise VZError5'un E .r: %s' %# Extract to target directory] os.mkdir(destination_eggdirLBzf.eM?all* # Convert h dist_info = os.path.joinQ%, - = Distribu.from_loc EV,lc=PathM B # Note: E&ate and p markers now;#it's difficulcDPback the syntaxH# foobar; "linux" in sys_platZ~ == 'test'def raw_req(req)XBreq.u = None8*;pinstallTuires = list(sS(map(sA.req)7())sFE = {b~#: U =reqpfor req!(Z,Q!if@, ':O.txt 3 Do open(+&fp+ = fp.read().split(7!mo>b@mod_C*mods?'.'LLinitg0'__ W__.pyNI:Q) and '( R lMt)o, 'w')o4fp.write(NAMESPACE_PACKAGE_INIT) #Customized Mixin2to3 support: - adds pconvertdoctests This module raises an ImIError on Pyth on 2. """ from distutils. import Mixin2to3 as _ 3.2log0lib5.refactor!RingTool, get_fixers__package setuptools class D M(): def log_error(self, msg, *args, **kw+/Blog.+%)) J}messageL F_info(E_debugC % D(@run_afiles, doctests=False/# See of the ribution ophas been set, otherwise check6!K default.0if .mdA.use is not TrueQhreturnF()  "Fg " + " ".join(@%))Wr__build}_names(#rexclude% %ife .D_on_ 0/ =:;r~, write=_ Q_onlyB;else[!@n 7lf. ?-U = []qfor p i+.Tse V.extend('(p*vs;NonM/lf D !++__N0s =4att7'!V', []6 ;(+2gc"*\ ^:if .s ?vremove(5)aMonkey patchingi:hs$ys"DlistplatformEtype7Bfunc0Px1lib rt import_module import inspect from setuptools.extern 'Dsix 3%, __all__ = [] """ Everything is private. Contact the proje eam if you 2k @needs functionality.^ def _get_mro(cls): {qReturnshbases clasfor cls sorted by$QMRO. BWorks around an issue on Jython where/.getmro will not rxA allM{zif multipleQsharesame name. Instead,Hie1 tuLT inkW itself, anFe contentsO of0.__s__. See https://github.com/pypa// qs/1024.Jpif platform.p)_implementar() == "E"J,) +c"r0") unpatched(item lookup = (Io ,_+f isinstance@a, six._types) elseFiI?#.FKTypeLplambda R: Nonf)lYp"""Prot]0agaA re-"&distutils if reloadedAlso ensureAat no other 6nsion monkey]e&Zfirst.=Brnal "cl*inW!!ifucls.__mo__.startswith('s'S = next( Y'Z 'numsg = " has already been (by %r" %raise Asser4Error(msgMz(# we can'ti.cmd, ala_.core.Comm*=Ahas__12885 = sys.ver_info <= (3, 5, 3)5 if8+# fix findall bug in (s://bugsRB.orgKfilelist.X `s_warehouse (2, 7, 13w%orO4) <O4, 6959NT T'A up.pypi.org/legacy/'  0distutils.config.PyPIRCCommand.DEFAULT_REPOSITORY = warehouse Ep_patch_Jribution_metadata_write_pkg_file()3# Install Dist6 throughout the R gfor module in.&,Icore1md:AEmA.v= setuptoolsN  ed Extension`.. ae4! >"CHif 'build_ext'8Bsys.s[B ]A = (WE+C_for_msvc_specialized_compiler-_ def a@"""P  to also Requires-Python/qrnal"""V M.j@ +b1) unc(replacement, target_mod, func_name)D7g with TImportant - original must be resolved by p?Avoidoing an already !ed .*Ga= getattr(# 3'unZ ' 7gAe on1 toqp# pointxHvars]).setdefault(j,#?whg%he-s ,O_d(candidatereturnF', T;l KsVuse standalone Microsoft Visual C++s{ 1# ixP latePaV circularsa < 3.5S0# =#Wule('c!'if platform.system() != 'Windows'3# Cyxly available;9oparams(modtGqPrepare\=`eters R , indicatlKW_prefix = 'msvc9_' i f 'msvc9' in mod_name elsec14_' Brepl!!= prefix + func.lstrip('_')8 = getattr(q,An(mod = import_module(&if not hasN6od,%):vqraise IReError(Qareturn,O N# Python 2.7 to 3.419 =~tools.partial(patch_params, 'distutils.3compiler')`E3.5+Z/14[_\ [6try0# P z6* (*U9('find_vcvarsall')>-^query.hexceptBpass  ._get_vc_envG14('(@ gen_lib_options for Numpy 6( os fromAS log $Aiter ,Qsetup.extern.six.moves>map flattenCp.chain.t_Xable class Installer:nspkg_ext = '-R.pth'Rdef i2=spaces(self`nsp = all_ns_packages(6nspY@filey", oth.splitextlwtarget(=# +`outputs.append(7log.info("5ing %s", ,ines = map"n_zline, nspM"if0zdry_run# always generate the Gps, even udry runVQlist((_,with open, 'wt') as fqf.writeV\I/un-ET$eexists  _Remov@os.r#eZ#\u{"7tmpl = (R"import sys, types, os", "has_mfs = sys.version_info > (3, 5)/p = os.path.join(%(root)s, *%(pth)r0importlib = kband __B__(' lib.util'@4machinery9mq"" modules.setdefault(%(pkg)r, /3 .>_from_spec(3 7.PathFinder.find@|I$"[|dirname(p)]))2Km orqtypes.MDType  ^(`@[]) m.__dict__J0'__%i__',[](p not in mpBp.append(p*)"lines for the space installer" )_nspkg_tmpl_multi = (7!'msetattr([%(parent)r], %(child2m)'%additional (s) when a @ package is indicateddef _get_*u(self):qreturn % fr1).f_locals['sitedir']PnPelf, [# ensureva unicode string u Python 2.70pkg!trth = tuple.split('.')*p<@elf. w&jq, sep,  =a.rpartx1#ifn0+= .:/D2';'#lB) % () + '\n'|sall_ns_ sB"""Rsorted list of all?6s""Q5pkg+ di bu./v,[]r(flatten(map ._6E=Bs)))@staticmethodN/1GivWq, yieldcomponentsAthate..2>>>D = I('a.b.c'b2Aset(0) =t(['a', -F.c']5ETruep7pkg+Pwhile{*tsz#'.LGo.pop() class Develop( qP `repr(self.egg_path)) def _get_target(self):preturn !.egg_link """Extensions to the 'distutils' for lP or complex Pribut6""" import os functool4TT.core'filelist fromb. _convert_path(tfnmatch!Rcase !Qsetup.extern.six.moves5ilter, map70verO8HI +&DDist<, Feature2UependTRequi'.K monkey __metaclass__ = type1all['H', ' pCommand  "',Kfind_packages', ]o)slw3.__ __ bootstrap_inst= None # If we run 2to3 on .py %s, should!Salso @ doc\ngs? # Default: yes; assume that8can detect6tests reliably run_vr_on_doc= True # Standard a names)TfixerQs libG/S = ['.as'] " PTbFinder`Generate a ( of all Pythonu found within a directoryL @oamethod=(cls, where='.', exclude=(), in W'*',)\B"""R_! 'm'1 isFroot which will be searchedas. ItO-- upplied as a "cross-platform" (i.e. URL-style) gA; itnP$beq3ed 2appropriQlocal< syntax.N'a sequenceN$toy`; '*' bbe usePwildc!in.b, suchq'foo.*'T93sub|s0' (but not  it7) +ff it's|pecified, only]s$be|dFJ|/E' \vcontainOQhell c0patBs just like '.;duZ ._d e_iter(:1()tcls._build_filter('ez_setup', '*__pycache__', *exclude), cls._build_filter(*in)1)) +@classmethoddef _find_packages_i:cls, where, n$, N:;z5""" All the I found in 'I' that pass('O"' U, butN2not&~&."|for root, dirs,R es{os.walk(, followlinks=True)a# CopyD@ to ate over it,bn empt$=@all_~! =A5[:][:] = []0dirD %ull_path = os. e.join()o4-re30rel;$(fO=4 = G.replace(sep, '.']s`# Skip ectory treepat are Uvalid/ pif ('.'!or5looks_like)continue|# Should this4 be/d?((Q) anduEyielKeep searching subdirM`ies, aMpere may6mor{ `# down`ven if parent wasd.append(dir|@staticNs"""Does a 6 $ a?ereturnVisfil f, '__init__.py' -patternsL Gi7a list of /#, a callable@willtrue only ifN*input matchPt lea\ ne`"dlambda name: any(fnTPcase(,`=pat) l0patU\A)  PEP420P yFinder(&)z9 w9 = k.1 @inst_requires(attr# Note: doQuse `/tools.Distribution`w lyGP# our 517 backentch `distutils.coreK")a(dict(lQR(k, v .items()   if k in ('dependency_links', 'setup_requires') 3)# Honor $.cfg's options.(dist.parse_config_files(ignore_,_errors=TrueX1if :X|:Sfetch_build_eggs( 3r) def(**attrs)I # Make sure we have any ments needed to interpret 'F'_install_y($areturnutils.core.0! .__doc__ =/ _Command = monkey.get_unpatched n.cclass (Htzcvsumes_argu+= False u__init__(self,c, **kwlP1"""0 Construct the jC for;updating1Avars]a) withkeyword parameteram 2b.~Ve(kw) re<Pializ,", $C_sub=s=0 cm4X Hcmd)3cmda_find_imple(path3Find all  under ')'(results = (q0os.).join(base,FBdirssqos.walk, follow,bA4s|atfilter( is( all(dir=os.curdir Pdir' plist of fu9CnameUnless dir is '.'( .'"prdyrp NUr == ;make_rel = functoolUrtial.0rel, start=ZADmap(M  (-m{() """PyPIE direct package downloadingimport sys o $re shTocketn$64thashlibAiterV from mbwraps -t.extern%?six".six.moves,urllib, http_clientA0<tr, map tbpkg_resourcTCHECKOUT_DIST, Distribution, BINARY_DIST, normalize_path, SOURCE Environment, find_distributions, safe_name version,>rto_filerRequireKrDEVELOPjB EGG  ) from setuptools import ssl_sup #6uti";loge.errorCADist2E,tfnmatchftranslate.py27compat,get_all_headers2*332~unescap]TwheelXW __metaclass__ = type *FRAGMENT = re.cile(r'^egg=([-A-Za-z0-9_.+!]+)$') HREF0"""href\s*=\s*['"]?([^'"> ]+)""",^I) PYPI_MD5?Pr'([^<]+)\n\s+\(md5k)' ) URL_SCHEMEb'([-+.]{2,}):'. EXTENSIONS = ".tar.gz 1bz2  .zip .tgz".split()['PackageIndex', 'ros_for_urlpparse_b_wininst'1'interpretho[', ] _SOCKET_TIMEOU15 _tmpl&/{ 3.____} Python-urllib/{py_major}" user_agent = T .f$t(%S=sys.LW[:3],=q) def r_arg(spec):)2try gwreturn #.A10except Value>Zaise (5\"Not a URL, existing W, or  : %r" % ~%,)J (B"""R(base,py7)m`(None,) for possible .exe GA""" tqlower =. (W0 pyP, plaS&, D1if :.endswith('i'#\win32)-{a[:-10]'?%eldTstart'-py', -165lZ-7:-4m 6win-amd64 hC+/20+2h' return ba@se, py_ver, plat def egg_info_for_url(url): parts = urllib.parse.urlparse('scheme, ser]@ath,= ameters, query, fragment =!ts>Mbased nquote(path.split('/')[-1])5#ifn == 'sourceforge.net' and X = 'download': # XXX YuckG( 2a'#' ing.M ^R#', 1Rretur=/xdistros, metadata=None"""YieldB or  @ ibution objects that might be found at a URL""" =X+1forhp@locax,'y9N%ifKmatch = EGG_FRAGMENT.(HLQ1if ?interpret_wro_name(+Burl,K.group(1) , precedence=CHECKOUT_DISTHWv5 :|%2d olS!if.endswith('.egg.zip'C'% =2P[:-4]Ostrip the 6Y!')%'-:W # only one, unambiguous \eYE [D1d.from_I( R!)]J?whl wheel = W(& Anot '.is_compatible(^ = ,=0pro= -sversion( #p# Increpriority over%+s.{% F + 1Pz 8exe~@win_\ BformG@se_bN_wininstF@ is Gy1Nl( u ZaBINARY"t ,.Y# Trypo exten0s (\, .tgz, etc.6J0extEXTENSIONS if basename.endswith(ext): basename = a[:-len,], return interpret_distro_@(location,H, metadata)G?[] # no extension matched def Vs_for_fil( US=None"""Yield possible egg or sourceS0ibu objectstd on a ^8"""(!Bnormalize_path`), os..RG)S#j|\, py_verI , precedence=SOURCE_DIST,Oplatform/ CGenerate alternativeis of aW o  ^Note: if `C` isaesysteml, you should callB``pkg_re+s.e0)`` it before passing it to thisGroutine! /# *# Because som~ckages are ambiguous as/qs split)# e.g. "adns-python-1.1.0", "egenix-mx-commercial", etc.=So, we gFeachJe& (l*mO$, ?and,"). In practice_# the spuri sbe ignored, bP!in;Deven'there's also anA" pau,0k"J 3 wiY`# complower than any numeric2number,  iserkunlikely9"to a request for itt's still a potential problemAoughdNlong run PyPIPEutilA!gola"safe"s-LJs in@arch@s (sX8 b ").Wparts.B('-'gif notwCqany(re.(r'py\d\.\d$', p)p]C[2:]wU"it'P_dumbkt-- bail ou7Pz`range(1, mW) + 1ny)DWj, '-'.join(R][:p])Bp:])F  :T2# From P; 2.7 docs<unique_everseen(iter A B C D5BBCcAD', str.lower8` = set()IA_addaen.add if@ is 4for in six.moves.filterfalse(U.__contains__, iterNDK*(TyieldoOelsed!E0k =bA not:een;?k T defvalues(func"""pWrap a tion return7%an' such that the result$BonlyPs}F1ms.#v S@wrapper(*args, **kw rY 6!) Y3\* REL = re.compile(r"""<([^>]*\srel\s*=\s*['"]?([^'">]+)`)>""",<I) # this line!here to fix emacs' cruddy broken syntax highligh@B @_ find_external_links(url, pag""Find rel="home4" adownload" ksQ`#1`, EURLsJPmatch+@REL.(70tagAl = 0s.groups!ls`t(map(Qstrip7 ().split(','))Dif ''rels or '  FHREF7tag urllib.parse.urljoinlhtmldecode( (1Xr0tag("Home Page", DW URL" poW(S0if Z!= -11 = asearch,1CE. A* class ContentCheckerdH`pA null lRent c$;qdefinesC!in0ce H'8S feed(self, blockO({bFeed a# of dataBhash*6#/m isiqjX" RFr if validaSCfailzV Truecreportreporter, template): 5""" -Call reporter with information about the checker (hash name)Esubstituted into1"tey.'xreturn class HashCb(Contentpattern = re.compile(Z`r'(?P<_>sha1|sha224!380256512|md5)='@expected>[a-f0-9]+)#!) *def __init__(self, s$, >l$.#& =/P #qlib.newffDelf.f% =q@Iamethod^from_url(cls, url"Construct a (possibly null)  Hf a URL:fragment =Yparse.url (oA[-1]tif not 9 y(match = cls. .search(Q-j4gacls(**@.groupdict() CfeedWblockZ.update(!ris_vali@9}@hexdigest() == O Der, aUmsg =" %RLU(msg)PackageIndex(Environ h"""A distribuEi* that scans web pages for download_s$(m&!, U="https://pypi.org/simple/", hosts=('*',),Fca_bundle=None, verify_ssl=True, *args, **kw9.6.& = + "/" [:"P.endsV('/')AHC0nedas = {}_fetchp_?PallowXg'|'.join(map(transQ]A))).( 0to_F = [0usea6 = |Eand ssl_sup.is_available)(9 or7Ufind_]3if /Sopener =VF_forzPOelseJ 0url2prequest4Ppprocessurl, retrieve=FalsEvaluateL as a possible download, and maybe retrieve it"""  if url in self.scanned_urls=5not;:6=ereturn ?[url] = True&0if RURL_SCHEME(url)YJprocess_filename(GJelseHdists = list( pros_forO)P0if %sEjaurl_ok?)- =debug("Found link: %s",%) 1 or- or*Sfetch Amap(vBadd,) # don't need the actual pageS}_:info("Reading1%_prevent multiple - attemptsdtmpl = "D* error on %s: %%s -- Some packagesG@be f!E2f =?Dopen_!, e%xif f is Non/f.Ra'html'in f.headers.get('content-type', '').lower(vf.close()GUp, we ca5 itEqbase = Jhandle redirec])Yread(!~isinstance(*[, str# In Python 3got bytes but want7.i\f}Alib.`.HTTPE  l:!# s have no charset, assume latin19(A = '#9-1' 6 _param('U ')'X9! =.decode(6, "ignore"yfor matchsHREF.finditer # =OpPjoin( , RW.group(1)pN[.startswithPindex/) etattr(f, '!',t) != 404* yP,BDdef 8, fn, nested=False #4 4sForiemos.path.ex7(fnNs.warn("Not found: %s"w, fn) ureturn if os.path.isdir(fn) and not nested:-H+% =5@real8 (for item in-@list_,)RVself.process_filename(Pjoin(:,S), True)dists = vros_forF!if$s~debug("Found: %s"=Q(map(1Badd,N)def url_ok", , fatal=FalseURL_SCHEME(urliA = ss.group(1).lower() == '('u4if 82or Pllows\lib.parse.url G)[1] `Zumsg = (( "\nNote: Bypassing %s (disaued host; see ":http://bit.ly/2hrImnY 0details).\n"fC raise DistutilsError(%v>Jelse:@warn/scan_egg_linkspsearch_/0direfilterF(, 3X OVentryiyHrM40os.f *1if ).endswith('.egg-'r K(itertools.star %%,  $H,HU openD)) as rawe"#  non-empty lines1 = 0q(None, tr.strip,e)hqif len(Fj) != 2S#amat is9recognized; puntc?Qsetupg:Pfind_ ributions;!ggL)l9P.loca: v*}7 precedence = SOURCE_DIST*a0addt\Sindexurl, pagB"""P  the contents of a PyPI16"""Dzrk$# Na URL to00t's a packageZ 1inkt:_ +1parna R"7urlpnquote, k[m f].split('/H) if len(parts) == 2 and '#' not in o[1]: # it's a package page, sanitizeMindex itApkg = safe_nameO[0]).4ver.cversio/[11Sself._s.setdefault(pkg.lower(), {})[link] = Truereturn to_fileIkg),:ver6`None,  ]# process an * into thQY-5dex<for matchHREF.finditer(.):try scan(urllib.parse.urljoi, htmldecode(i.group(1)))except ValueErrorkFpassSpkg, ) # ensure thisL0 is "ge#jif pkglR ividual>Dpnew_urlhA_external_s, Q?3# Pfound URLc(base, fraegg_info_fory( S70if :.endswith('.py')WQ 6 if^ s += '#egg=%s-%s' % 9OelseWpSneed_CN,  <:PYPI_MD5.sub(!lambda m: '%smr, 3, 2) P ""no sense double-ning non-r6Ndef W, url\.OJ_all "Pdaat %s  to .py @(s) %0out0sioR6fo;[""earequired."%)+`, msg=w, *args0if #.IpfetchedsF ifU 7warn(msgo"P ,Q"Scane of al1s (hmay take a while)' Aurl(X,Es'#, cGment-CQ( +55.un%c + '/'q!ifeNxGget({A.key # Fall back to safe version of the name self.scan_url(Pindex + requirement.project_D + '/') Lqif not Apackage_pages.get(GUkey):8# We couldn't findstarget N, so search cI tooPnot_found_in_-for url in listu], ())IS eachhat might be relatedtdesiredMC(urldef obtain,, installer=None0preR%()jo_s#"@dist#4[]4if .) $Wareturn,c.debug("%s does\match %s"mVrsuper(PI,#).@:hcheck_hashler, fileW, tfpg5"""- is a ContentCR%er$0.report($ ,"Validating %%s t@sum U%s" % ,per.is_vF(ttfp.close0os.unlink([ raise DistutilsError&w atcfailed&; F, "possible download problem?-4% (.os.path.bas Aadd_sGurls,"""Add ``H t wi#e }n(esM 0>if F)0to_i # if we have already "gone oe2!oraURL_SCHEMEsK`or it'QlocalP/directoryK.startswith(''*:'d+'(uros_for){"a k$  uU#n go ahead an-cess it nowB3IF #Jelse5# otherwise, defer retrieval t4mq.appendoL-qp"""Scan s scheduled for prescann ing (e.g. --find-links)""" if self.to_scan: list(map(# Y_url,2%))3&I* = None # from now on, go ahead and process immediately Ndef not_found_in_index, requirement)[`.key]:we've seen at least adistrosmeth, msg = info, "Couldn't retrieve page for %rVAelsey2no ds~)this name, might be misspelled(p]warn,Y (mayx6?)"I(msgm.unsafe_+Vall()downloadspec, tmpdir"""LocateD/or 7 `2b` to `6`@turna local patht40mayUVa ``R-`` object, or a strJccontaiU6URLMan exist&n@fileB0proP/version (i.e. theuform of ). If it is85URLN8@.py with an unambiguous ``#egg=-q`` tag ,Othat escape:P-`` a _3hroughout), a trivial ``setup.py`` isKautomatically created alongside!ed.$If/is !,  od2urnet%ofNpa match1ibu#(possibly afte)(it%).M p)firectory(esimplyM re ed unchanged5DFx to!ub=8'ofiLvp. Varinrerrors vpaised iproblem occurs duz6ing#  noinstance(V', Kscheme = URL_SCHEME4&,)?P# It'~C#to0/_4+(.group(1),,I Jbase, fragp = egg_B_forQ>pec80if ;.endswith('.py')?: found = self.gen_setup(, fragment, tmpdir)Dqreturn 0  elif os.path.exists(spec)0# E ing file or directory, just g)itd[ Nelsek' = parse_requireB_argEYgetattr(!fetch_distribution5p, 'loca', None) QOdef =b', W , force_scan=False, source Gdevelop_ok l_index="""Obtain a suitable{ fulfill``  mbe a ``pkg_re6s.Rs`` instance.If necessaor if the `` flag is se(he45 isMsearched!inI(online) package  as wello2%lyJDlled7ls. If5]match& ,Pdr:)edxP's ``~C"svalue you would haveMgotten from caa ``download()`` method withTH`'s URLBname4no 8  ``l.2I Conly gSs andcheckout links will be considered. UnlesL`!vLS!p ystem eggs (i.e., those usl.egg-info``Nuformat)@igno!5""" P# pro7 a ' .a1("S|yfor %s"7`skippe%{}H! =ind(req, env) ifE3envJm# Find a:Q; mayaamore than onceJ in[req.key]:'+!if9 .precedence == DEVELOP_DISTCnot >_okK ,3in U,0Ywarn( "SpEor so:<D skipped[dist] _= 1 continue test = (Fdist in req Pand (%.precedence <= SOURCE_DIST or not source)G0if :+loc = self.downloadlocation, tmpdirX?9_4o = locpif os.path.existsn C)tpreturn {if force_scan<0pre( find_packages(requirement,p0 = . %!if)l_index isJNone.W,Ba>)2>is L"if!touGb  ;i5Nwarn2"NoW Nworking  links foundUu %s%s",=(#"a@ribu<P of "c>"")@j x;els/pinfo("Bjpmatch: {<+p.clone(=Adef fetch(p,,ps=False, """Obtain a file suitableC fulfill``DEPRECATED; use the ``_o()`` method now instead. Forbackward compatibility, this routine:identical but Js|J$``N ``E!ed'aNuobject.5""" 7!ifJ%.6/gen_setup3name, fragO = EGG_FRAGMENT.(6As = v[Id ininterpret, o_(O .group(1), None) if d.vesrsion ] or [] %if len(dists) == 1: # unambiguous ``#egg`` fragment=Ubasename = os.path.A(fil)p3# Make sure the ' has been downloaded to temp dir.y%ifq0dirp != tmpdir:4~7dstRjoin(+$, )5!from setuptools.command.easy_install import same EVif no n, dst)shutil.copy21 `0y  =U xwith open( '.py'), 'w') asf.write("0B?\n"5(q=%r, ve py_modules=[%r])D/% [0].project_j%, p,A6splitext(0?[0]6I areturneelif match}raise DistnsErrorh"Can'tly interpret / identifier %r; "any dashes inLDshould be escaped usingMunderscores. %r" % ([ &Oelse(process plain .pyz s out an '=-'p suffixenable automatic& script generation.Gdl_blocksizBB8192Tdef _ _to(self, url,3.info("D@~1%s"4B$# fp = None:tryochecker = HashC._url(urlk3Sx$Qif isDance(fpPlib.eQ.HTTP[*R %s: %s %sWp.code, fp.msgD 0hea =0{ unum = 0QGQbs =  #)-1if "content-length" # Some servers return multiple Content-Length head'K:( sizes = get_all_+(:, 'L/')C = max(map(int, W),elf.reporthook(url, filename, blocknum, bsE Cwith open(4'wb') as tfp:while True r = fp.read(bsr$"ifF"checker.feed(WJ,tfp.write) Hnum += 1KsV+C?els&]break{a_hash( (er:tfp cSzfinallyb?if fp.close() @Gdef W/, ] lkbqpass # no-opYqW_url(Wwarning=None)B ifvp.starts ('':'$M`local_` &+tr0*_WP_auth4 , .&erAexcept (ValueError, http_client.InvalidURL;vmsg = ' '.join([str(arg) for arg in v.args]s93if  Q(ing, msg@raise Distutils('%s %s' % LMurllib.eQ.HTTP<- `vMA?URL@vm6sont"Download u%s: %s"S7/BadStatusLine?Flinered a bad s lD. Th/ might be 'JRdown,]!q v.Y I(Jion, socket Y self.warn(ing, v) Yelse:raise DistutilsError("Download e for %s: %s"AE `% (url!) 2cdef _dV_url(self, scheme, .vtmpdir)# Determine = filenameXz#  , fragment = egg_info_forv6url0if 2pNwhile '..' in $6! =.replace(2f, '.')\\', '_'sL%"_ed__" # default if URL has no path contents^.endswith('.egg.zip'R*rP[:-4]kstrip the extra 8f beforzl` = os.b.join(,q%# Pb>#if == 'svn' orc.startLsvn+preturn U.IB_svns p?gitp?gitp?gitp /hg\/hg[;'urllib.request.url2]Pparse H)[2]8 Ft`url_ok/p, True)U\sDot allowed I_attemptTVOAscan8B.process%aBl7K,gUheaders =h,to if 'htmlM@c.get('P-type&0').'r(qE _TtU\mMN  Z`[H@pen( 6l!inN80if .z !# Check Ga subversion index pag0if re.search(r'([^- ]+ - )?ReviF�a\d+:',� r�I���# it's |� ��0����v.close(4���os.unlink1�$����me)  � break # not an index page "� file.close()�os.unlink(�Fname�raise DistutilsError("Unexpected HTMLd� found at " + url) b�def _download_svn(self,"�,�q�:,���Purl =�.split('#', 1)[0]�remove any fragment for svn's sak�creds = ''\�!ifY�lower().startswith('svn:') and '@' in*����scheme, netloc, path, p, q, f�lib.parse.url �( �?��!ifF�q��I� �$//�/��!�J[2:]��Q�F��! =��)�</<��2��� au�Lhost�tRuser(Z� �8���0if ?���!':�$��(��b�a, pw =M��:��2���@" --B��:=%s --password=%s" % (��`���H�Oelse���f���� K�2�+0 = R"�pi< = C5urlB9� Z"un\W���Y .info("Doing subversion checkout from %s to %s"�os.system("sv?��nq?�i- E��ereturn@staticmethodq�$Avcs_P_rev_�@_url@, pop_prefix=False) S�,, query,$ 1urlg��Z��H�+B[-1]��+�a# Some]�identificatkQfails��-���T�S�rev = Non$if�C��U�", 5���".r�!'@�X��# Also, discard��aP�( ^7'')A2rev�?git % =56���k��_elf._CGTrue� 7git clon-<�w--quiet-��;!if!is� �Cing out %s", rWev) �#os.system("(cd %s && git checkout --quiet %s)" % (?��J�filename,�:rev�5)) %�treturn >�� def _download_hg(self, url,*�%):D�=�% =�.split('#', 1)[0]-�E�`rev = V�a._vcs_.�_rev_from_url((��pop_prefix=True�<�info("Doing hg clone B��Blto %s"��s;�e�;��g��80if �is not None��PUpdat��rhg up -C -r�/-qTDdebumsg, *argsBlog.%��9��', ��?�$��>�Cwarno � >�$��< # This pattern matches a character entity reference (a decimal numeric #�s, a hexa$�"�p, or a ud�2). j�2_sub = re.compile(r'&(#(\d+|x[\da-fA-F]+)|[\w.:-]+);?').sub def�Bode_O�(�bwhat =�.group(0Runescape(*�)P��htmldecode(textL�1"""D�R HTML,ies in the given 5�.G>>> O�A�0... 'https://../package_%-0.1.2.tar.gz'3�?tokena=A& �_b=B">@��l�]�Y��O�(A,`�socket_timeout(�3=15jW %�Cfunc��=#�k, **kw�2�4oldr��S�.getdefault�(/�1����-.s'�/� .�6try�?�����(�C�%���ofinallB����q�_7���G0_en`_auth(�p A �Ption  atible with Python 2.3-3.3 twRwill S���R�ua URL suitaB�fn HTTP header. >>>: str(_encode_auth('username%3Apassword')) 'dXNlcm5hbWU6cGFzc3dvcmQ=' �PLong F��W� ings should not cause a newline to be inserted.A�>>> long�5 = �e:' + '�5*100�chr(10) inv� �L��QFalse:�1"""��� _s = urllib.parse.unquote(��# convert�Fytes?�b�! =�2_s.N(8���the legacy interface for Python 2.3 supportW�C�$d_Z�cbase64Z�astring�!�j��@back�"a +�S�9 = ]�0.de��2� p � trailing carriage returnN� �K�.replace('\n', '') class Credential:9�x$A h/ pair. Use lik+amedtuple�=�F�def __init__(self,O�$, P�)r���#�.q��M�!�9�% =D� "�o�3tero�[�iyield a�4��V��\�Q�/stP��Z4'%(�T)s:%(@�)s' % vars�iPyPIConfig(c�Rr.Raw�Pr��A����f����Load from ~/.pypirc�(�pdefaultIPdict.3�ekeys([��� �repository']4�q���� .y�)Y�?�rc = os.path.join( �`expandX('~'), '�'C�>�%if<�exists(rc�#�@read�x�@property�^creds_by_�ctions_with(� ieG[J��o���!se+�4 ��Celf.�s�/���"ifCget(#�6, '�1').7�]��>��A(map�Q._get�_�#, W���)�  6�J�;�Z��/ =���>�,n(?:lf. ��,3� :3��Afind!�7url�<!IfpURL indicated appearsb ��. defined2thi�7,T���:that repository.  �B""" � for repository, cred in self. �Vs_by_"�.items():B��J�if url.startswith(2� +��/�areturnl� def open_9�_auth(url,�er=urllib.request.url-�V�"""Open a�Slib2 (�, handling HTTP W�entication�scheme, netloc, path�rams, quecfrag =b�`.parse� ���!) L�# Double U� does not raise on Mac OS X as revealed by a@�1fai�t� We would expect "nonnumeric port". Refs #20.A�#if�B.end3':'*x�http_client.InvalidURL(_�S: ''"�$if�Pin ('B�1', �sa��fl, host0splituser(k)�FelseJ�>�r = NoneR��!ot&�� = PyPIConfig().find_��"al����!ifjB���l�@str(8������ainfo =6�.� na$1url��"���@log.*�`('Authz��] ng!%sZ%s (from .pypirc)', *4�X����� = "Basic " + _encode���pn# =x��|new_urlRurlunZ�i�T1��".R(R� 2�.add_header("&Boriz,2� ]�n�3url@+�g�'User-Agent',  _a �j�Cfp =Y(=�K�!if�B# Pu|0on  back intomP URL $1ame,l# so that link0und the page will work4�bs2, h2�Cram202, 2 fp �����42 =&a and h����,��Q2���=�y��� U5�fp # add a timeout to avoid freez�package_index /��cocket_@�(_SOCKET_TIMEOUT)(1�)v`fix_sf 2 ��!! #ward compatibility@�`local_\�@�"""Read a �S� special sup#directories�J@, server��3raml� �g�filename = urll ib.request.url2pathname( �) if os.�.isfile(��%�!):!��%�return urllR�open(urlL�Qelif K�endswith('/') ande�?dird��w�es = []w�for f in=�Olist:����>��z� =-�� �U.joini�2, f��-���if f == 'index.html'��"����� �a�@, 'r�Ns fp0��4��body = fp.read(w�!�Ereak���9����*���f += '/'C���s.append('<a href="{2}">�</a>'.format(�6=f)�Jelse�tmpl = (j��� "<1><head><title>{url}</ �"3��/.�� !>{�1}</�!</O�"��e���0 = ��url=url, ?�V='\n's� status, message = 200, "OK� � .�#, {� 404, "Path not found", "N � ��� er{'content-type': 'text�!'},��[�_stream = six.StringIO(� qerror.HTTPE ��q-, ���b��) """Utilities Q extracting common archive�mats""" import zipj�8tar�$os�dshutil�Pposix��xtlib from dist1�!s.�#s o�D�� -�pkg_resource*� ensure_directory __all__Bh"unpack_��������default_filter",L�UnrecognizedF?�,�Kon_drivers�f��", ] class I�(�"""Couldn't {�E the�`Z def �(src, dstN�4The%� progress/� callback; xQs TruB alll�k��"��\�! z��gq�,s�X=�f�_�HV=None�U `}�g` to `a�`, or raise ``e"```��` is a function taktwo arguments: a ~internal��-separated),aBQystemC� where itL�will be �Ped. @ mus�m�tdesired1�S�J�(which may be the `same as the one passed in), or else ``None`` to skip that file or directory. The callback can thus be usedC�report o�eL�progress of�extraction,�@well� toq�1ter%�citems +�Qed orL�#al!�$ir�ion paths. #� `drivers`, if supplied, must�a non-empty sequence�1fun�`s with�O�CsignaturM4is .�b (minubz� argument),JBrais ``UnrecognizedFormat``�they do not��F�0ing�2 de�!ed�archive type�Qe tri�Quntil ��Aound�O�Adoes~�� an error*8�a re exhausted (in which ca� !s X�d). If you�Fly a�"of��Ee module's ``4on_�` constant will�,�N�@meanat ``unpack_zipfil6and�3tar�M�K0, i!atP�aorder. �1"""�f.��*��j�:1�l&ry ���8�(�Tname,d_dir, O0_fi )H�~except ` ^�rcontinu�o�� #�areturnY� �b��(,��M���v"Not a  p: %s" %e�;�) def dv =default�Q""""U6" aD, usVinterfac��sUR�{^`2` iFn��$!ife0os.e.isdir�)��Fl?"%sd��S)��`�Qs = {��T��Y: (''X!),%�}���Pbase,1!s,sos.walk�src, dst =[A�]O�z���C�Fdirs����[Pjoin(<�, d)] = src + d + '/', (�0dst'� f�ff��� g�Ptarge�B�fE��*� k(�2f, "� 6�� ��U�#]|������ ��`ensure(_� z�7f =in(base, f)  � shutil.copyfile(f, target) &� '�Hstat'� def unpack_zipG�ilename, extract_dir, progress_filter=default�!):t�A"""UN�` zip `P��K�g` to `O�!` /�Raises ``UnrecognizedFormat`` ifB�is not aZ��X�� (as determinedP�Sby ``�5.is�)``). See ``�archive()`` for an explanationO�of the `�` argument.'�2"""�!if������ '�r� �X("%s � =�P" % ( ��F�2,))q�DwithQ.ZipFb) as z�q���info in z. �Wlist(��&��`�0 = �.p�m�����t# don't absolute paths or ones � ..n�Athem*�?����)ame.starts*�P('/')<�@'..'4���a.split���@���continue�` = os.�g.join(z;, *[� .A� (6�a��#ot|�����4��6end�<�# directoryA�G�`ensure!�(� �OelseW��R�#�{�data = z.read(, ��-��S open�a, 'wb'f��2�f.write(g� P��unix_attributesexternal�i >> 16�i :�y�os.chmod� l�)) .0tarD�.tar/tar.gz�8bz2=8�= �.7O�6trytarobj =N�`�� �� Qexcepp��.TarErrorE�[  h@comp ed'un�?tarL���extlib.closingN7obje?do any chowning!P�.� = lambda *args: cNone �for member in tarobj:��%�cname =%�.� �# don't extract absolute paths or ones with ..e�9hemC�pif not [�p.starts.�('/') and '..'"�#in%�Aplit � ���prelim_dst = os.�c.join(�r_dir, *n�I�)) ��J�# resolve any links�%to�1the��9gets as normalN��]files�Swhile^ i?� t k�(.islnk()N�nsym())���������� ��/�#if�1.isW�V��+�0basPposixb�@.dirX��� �)e��>����6�6 = B��X�,L� �B��s�7�(`�@�; =obj._get�9� �� ?dirSfinalprogress_filter(A&, �5if E�&�B.endXoos.sep:���^�& =j�][:-1]!�/���?try��!�# XXX UghC��&�$._�,��B�`except�".E_Error� chown/chmod/mkfifo/mknode/makedev failed� 6pasreturn True �ion_drivers = unpacktectory,�0zip��0tar� import os �%sy �1tem5��operator�functool1�Iiter�$re,�contextlib�Upickl ���wrap from setupK�.extern �?six"�.six.moves,�builtins, mY�B�@pkg_urces.py31compat if sys.platformASjava'I�org.python.modulN�� .P�M��_os else1 _o�h�5�1[os %] ��GNamex#��` _open2pendistutils.eD�K�,� <working_set __all__ = [ "AbstractSandbox", "Directory� �Violation(�run_setup", ] def _execfile(�name, globals, locals=None): """�Python 3 implementf�D of Q�.)�1�mode = 'rb'�with openx��$�) as streamr��v�script =�q.read()H�#if�@ is �6��$ =�0�c�@comp�Z�&, �'�']�� �(2� ) @contextlib. �qmanagerZsave_argv(replE��d�0ys.!�1[:]�0if +���;not�s-�! =(�4�6try�ayield _��gfinall!� E�)��Spath(8������>��L�OavedUoverride_tempY!ac�oMonkey-patch ,��. �Adir }�k=�, ensuring it existsAO�pkg_resources.py31Aat.makedirs�,B�_ok=True) K�5���� ��$� Y� L��}�^pushd(targetQ:� = os.getcwxos.chdir.��C�d��Rclass UnpickleableExcep( ��DAn e%��`resentanother :� that could a2be j�d� @sqcmethod��+dump(typec���� �Always return a 5�Ced (i� ) A�@ and�0. I0c can't �,u��P�@wrap/inb first��0�� ����.�s�#), �2exc�5�^Fo��_# get�inside the s��;�`from sctools.$��S/orT�Ras cl�D����1cls� (c!cl r(�)] RSaver�42A C" M1AwillU' al, serialized,restore it�Rlater�a���G__enter__(selfG���.�2xit-�f, type, exc, tb): �if not exc���ureturn (�# dump the,�eeption�self._saved = UnpickleableExc,�.?�`(type,A�)<�xtb = tbp�suppresst��R True6�def resume(��"restore and re-rais �y��"D���Bif '�'|in varsU��+��;��r = map(.loads, �&�Qix.re�,�tb) @contextlib. �manager ��w_modules(�1"""aC:� in which imported 1�P are B�"d.�Translatess internal to����equivalenKT�xoutside6�.��}�s = sys.�b.copy($Uwith FSaver() as�_Ryield��T�qupdate(o�[�r# remov {�!Qsince�4del`A = (��mod_name forP �(in�-�&if#��q�'��0!�#p2lud�encodings6��. See #2852���K��p.starts2%('A�".'��d_clear�(�)3���W.L��g :�0�su _list((���<8del'[�]pkg_resources_st�9 = #�a.__get(�#__[6try<��gfinall!� O�sO�r��( Setup_<!(s�3dir�temp_dir = os.path.join(�0, '$��_� ��)�%����Qhide_�Stools����?���a���"�Oargv"��*�&�Poverro���(����&� �6�Vpushd/��?�`# ensu�a� commandsPavailJ�7� �"__,F__('} -��F! _needs_hi�-�J>>> )�m��b�-�� �0�s_hiding('se tuptools_plugin') False �>>> _needs_hiding('se5�.__init__7�?Tru6�distutils,�o%�� TCytho�{�1"""� pattern = re.compile(r'(��|pkg_resources|�|Y�s)(\.|$)�return bool([�.match(mod_name)) def hide_g�1():��Remove references to /�' modules from sys.�to allow thginvocationD�`import� most appropriate`�. This technique is�necessaryK�avoid issues such as #315 wherO�` upgraq itselfM�would failN�find a func�declared in�etadata.<�(�= filter(,s_clear_8���G2run_script, argseRun a 8 ,�rsandbox�its directory�_dir = os.path.abs�(�0dir0 �)�Bwitht�_context&�3dir��2tryT� ����&argv[:] = [��] + list(�b�2����6���.insert(0,|��n� *�p# resetcinclud�@, w/zn callbackp� @�pworking4(�����#�I�s.append(lambd:.activate(w�@��# __file__ shpbe a bytring on P< 2 (#712�adunderE�I = (��f�^ �if isinstance, str) eZ�K��S�.encode(0get�asystem��-=�)) �DDS�� :�E�ns = dict(;=1, ___='__main�=��P_exec�k��&ns^except S�@ExitWv�Pif v.C and �:[0]%��u�3rai����# Normal exit, just r class AbstractV�"""Wrap 'os~}�'open()' builtin for virtualizJs_3e =H��/()��`._attr[0������+y� � ins7(_oV�&�pif not $�p.startsQ('_')�0has_�y�, name)  ] def _copy(self, source):��!�for name in #�v._attrs!��%�0set�A(os,-�3, g�P��'))t�_enter__x�p�d��)�if _filez�builtins.�# =�� �9�#�Eopen#�� �#�u�active = True�3xit�, exc_type �value, traceback�U�UFalser���4� �_��97_osk1runeg, func�"""Run '� ' under os sandboxing"""}�Awith^ areturnZ�(t�_mk_dual_path_wrapper(H�original =/_BL��]��B��src, dst, *args, **kwV��3�!if�"._~ ��!�E�remap_pai�$, "� g��E���(3�4�0���^\@["re ", "link�1sym �]�aif hasm,���locals()[O�O] = ��b�%�nsingle$, �H=Non�% =#�? or�! d ��A� Qinputn , � `��-�(/��0�,�sN'"',3� ��3���3� 8�P"stat7plistdir �#ch ��=��2mod �0own �!mk#�G�`remove�!unQ, "rm%�a "utim�3lchA�Rchrooy��K�Pstart��N�bmkfifo �n��n@conf�baccessq0~�Y �_8P�� wZremap_output(name, original(path, *args, **kw)) �oreturn0�  0�,�Bwrap�for name in ['readlink', 'tempnam']:>��if hasattr(_os,9�)���locals()[U�] = _mk_single_with_�(�)�1def&�Rquery�T�k = get{�@��w��D���Z(self-L��)�retval =/Y��+�0if N�._activeH��!��%�remap_output�", l���K���� agetcwd6os��D_validate_vN� �"""Called to �D or 9�P any 2��, whether input$�5"""h��0��U�_7��operation,\���@�V�}�st�����2����}�:�~�+Npair|�src, dst ��I�s like re , , and sym � i�(�A#=� + '-from', �,F�?to'��C�G) �'devnull'_EXCEPTIONS = [os.!�c,] els &�] class DirectorySandbox(Abstract�f�"""RestrictE�#"a �T subdM� - pseudo-chroot�write_ops = dict.Gakeys([ ��z"open", "chmod �!ow�Pmkdir�`remove � un� �!rm�H�Autim$�3lchA��, "mkfifo8�2mkng�"]+`_excep�F@tern���# Allow lib2to3tK�t �save a pickTgrammar object (#121CCr'.*G�B.*\.5�#$'��"exempt I0ingc��s that match theH��"xs_init__ns%, �'s=&� 0��\ s.s�.normcase(o�@real�(,�self._prefix = os.path.join(self._sandbox, '') ��exceptions = [��$�I�normcase(�@realc�(�)R��5�@for �F in \�X�] �AbstractS�.__init__�!) (�def _viola��a, oper��, *args, **kw):2���rom setuptools.� import q�VW�8�]raise�(p�o�#kw�if _file:��|������ , mode='r'��:�!if'�@ not<(/�'rt', 'rb�U�qU') and(�"ok�P��� �A"�!",� � �=�breturn�a�2�3��2opep`�� �= ������0��atmpnamv ~�'�",#k6�!<�active = E��Z�:try&� = False.��2�(U��Y�z�exempted(h� �)�4or �$ =� V�-�.startswith+._prefixb��ofinall  Ow���� , ��p_matche 1��������s�%._�s��*�8�pattern�1re.���)��N��R��|�L�z��_��candidat�BiterI0chaS������EFany(P�remap_input � """Called �!h F�Es"""&if*�write_opsC?   �� ��*�Npair�src, dstQ� path pairs like rename, link, and sym � operations""" �if not self._ok(src) or�Udst):3��:�0�AviolS�(]� , src, dst, *args, **kw)>�preturn i�'�!) �0def� n(Z�, file, flaA�mode=0o777T��"""Called for low-level os.open()�Y� & WRITE_FLAGS, ��� "a�"�� ���:�_:�(f� � 8�( �= functools.reduce(Z� or.or_, [getattr(_os, a, 0)Aa in/���"O_WRONLY O_RDWR O_APPEND O_CREAT O_TRUNC�EMPORARY".split()] ) class SandboxVDistutilsErrorD"""A setup script attempted to modify thesystem outside�sg���tmpl = textwrap.dedent( ����� �: {cmd}{p!r} {kw �}�2�The package�?has��s on your ���N�that areOawithin�EasyInstall build%�a�i�been aborted.�%is�0canbe safely iQ�ged by b�W�0may��support alternate@�A loc �s even if� run itsK��by hand. PleasQ�Aform�S's authorn��P�maintainers@find ��Pa fix workaround is available.E�""").lstrip(dq__str__g�Pcmd, ", " =��T��.~.�Pat(**/ls()) from dP.dep_ 1 imo newer_group # yes, this�wclmost entircopy-pas&�[�B # 'D�pairwise()'C� just another convenience #9Pion. l D��(sources���cargets("""Walk both,uments in par~l, testingReach R� ���w�P2thaLcorrespond9�ts�1. R'@s a � of lists �L�5�s) whereu�Sp� l�Z�r, accorl�osemanticsL�$ofa�2()'TWkif len�A) !=�e�2�Zraise Value2("'g' '9�0' mb meW�Cgth"#0of lists (sources_groups, targets) where so� is newer n_�cs = []�8��for i in range(len(7�l�1)):<��S�"if`�� )�5[i]�7[i]7��;��~.append=�)g�0��0���Z� *�freturn�C, n_%� import dis �Tarray �collections try�5�html except IH�RError$��� = None from setuptools.extern H�?six"�.six.moves,��W�_parser __metaclass__ = type OpArg = �.namedtuple(' �', 'opcode arg') H�P Byte�r_compat�def __init__(self, $���.�y�"dez8�3ter8�2� """Yield '(op,arg)' pair ieach opera|�v\�object ' �B'"""f��@byte.�e('b', �@.co_8�>aeof = 1elf�%�:�Z�uptr = 0��anded_af0�`while 0�f< eof:��H�Qop = �Z[ptr]�if op >=.HAVE_ARGUMENTF��J�y�K�v + 1] +\� + 2] * 256 + ���G�����J+= 3����=�EXTENDED��#��Plong_0 = qinteger�Bs[-1W2�� �� =5 * K�f(65536�2��scontinuh�Nelse�0)���1�y(����! = getattr(dis, '�,',?�7�unescape7��4, '�0', �a.HTMLP4().$�) MZ�����������@�� ���� !L!This program cannot be runnDOS mode. $Z� W^�Qp^T�^ ^0^S^I-^s�1^]�1^:�^V^RichD�W��PE��d�Q��#�  �����j�ax+��� � @�� �`�����2�p- ��85�<�E��"�H�Q�( ��S`� ��)B���F�.text���ԣ����.� ��`.rdata��)������*������� @��@.data���5��� �����&���@��.p)� ���`�� ���(�@9� �YH\$Hl$Ht$H|$ ATAUAVH LH3IHэD HyHc@ ��33Lc�"HXL~e>A ,\u'"u ~DƲ\HˋZ ��H+\H3A,HHI;C|~D5�%5�Hl$HHt$PH|$X"C�H\$@IH A^A]A\��� WH`��H�H3H$P� H HtH/u@\uH$@��L$@�D$@HT$0HHD$ ?��|$0�� �@\���=� =�B��uH|$@Ha� HHHȀ9\uHɀ9\t�r;r ��1uL3������LHD$ Q ��0| �$@���c�@A'�HH 8BH1P3�0$A Z_r�p`2H�LHPa%H ��3HA}� LE3HU��tD��KH@�u+H@t[@(�tEtI@@"u@u3E@2DtLǠ@ 03S�@.H#�#��AE�IcE�HI45�q& �$��u;�G � H(u !�t36��DH({�`���3RHL$pDGh3҉$@D$PX� `��WH D$ph���0\$Pv`pL\$H1�@78�0E3E3H3ɉ|$(s��@Pu(n0�PH`b�PH$� Ī� _ËD$`HL$P �_iL��4DW�W�,W� W�9� o�-00W  �IIcH;HHLLQ}J<)� IHDL;|IcH���MHL2IW� Li}0LIcH��I"<g�1H4DH;|H1I1]A\`@SWAVA XG�5 00DLcHT$0A���38��H3H|$0HHD /HL$0H;v�8.tHT$0��HH;w��3HH:�3H:��;�$G2��fG)��G ��؃u"��LD$0H;�H`&��C�$0��A���H$��1��HcH �V_/�HHH;st< t< u�HT�PHs[������t%HM�%�D��A>��A $H�2��� 0H8HHjHHu ���LHH`B��E�N$P��t$$L$H��L$@��E,7���AEHc��HLI$I|$~"HfH H�HHGu�PI;�}I H:��||$ �H�H����t*IHԤ���@�H`L`���ZSE-� s;L��"HPH$023s ��HX��A_A^_[�`E3K�&HPHHL@LH SVWATH8H3ۋH;;u'L&���� \$ E3E333b%��fDH;3�3�/3� �d$p��G@d�>#��t*t%HcHHL)�HkXIH 5 �H , �HL)�B8u%F�F� HHkXI A8t"j%�$��;u* ME3HT$h���H׋���H8A\_^H�@SH l;��Au���;LHcȾI;�%��H+�$PHˉ,�������x3H+�HH0HHt H*��"�EHILx(�I'@I+LIt ItMuI_�Iu3H �H(C)��=4��t&� V*�H(}&�� HH |�H;r:H� �w.HH�*H+HH ?L*��k HK0cԤ�`�؃H}.�VJ05.� ̸�PH�r7Hu �w+qH+ʐ�,�k)�� H0ӈ�"(X�}r�B)��)��1d$@@@_*69D$@t"� t "��L$@H{��Pff|�HIrSI�II@rHكtL+HHMI?Iu9 ��ItfffHV IuMt HIu@�%�ffI���s00�&QHQH@HQHQIHQHQHQufD��HHQ�3�@Q�5�@Q ��u $�T�� LM t$H+t(wItu IHHHIr&I~LLIM3I��MtI������HItx$tu�QiH&�#tb�V"�S�G"�@�4"�1�%C��!��8<IHH3IrEt HII rHHQHQHQH I sI �0r #�02��IrHb�l@SH EHLAA�LtA@McPLHcL#IcJHCHHKAt AHLL3IH [��H(MA8HId`( �<8HD$`HD$(LL$ MLH'��H8H\$LD$UVWATAUAVAWH0L$���L$Y�L3MʉT$pH;t L;uL;t������L;u H9$���u �RtL;���� �RtL;���� �"t�8t HHH;w;:u,L;t!I;��A��I(��3H{,�AHHH8te %�+;tH</t <\t <.u HHkH8uH;t/L;t%LL+L9�8{�1TV�0Hz� tAH;tQH;rLL;t!LA��CvqL�1=�L;tPH+H9$ vNLL�'��/L�0H+&�I�(&�L� '�L� A$3���L$pL$�;tL;v#�� ��e��b�PAU�R���\�H;u%d6d$ ����E3E333ɉ.��;u��"���H\$xH0A_A^A]A\_^]\$Ht$PIHA���HH�HHIMM#HHML\$@HL$8M#� H�0T$0!(I� LMHT$ HAH�`Ht$hHP_a�@ff��H; y��uHfuH]&��HA�H���4��HCHmaH �KH  �H;t��� �u28�Hs�H9CtI'� e'�@ )'� C�B�Au$�CoHf��P@=fcuHk �XVHL$ 3&$D$ ��~LD$ c5��DH@��DXA|$8�t 00�!A�P@[̊� V`Hu%\W �g���UHt30L#L$0E3D$8D$HBZ ��l$8x HL$0� HT$03;6@H`�6�MtuH+LI�iB H:uWNtJHJ ffwHJ H;uHhQI�%~vHLI3It H3HHÄt't#Htt �Rt �Pu7�̴ 9��6Y ��0�����H [H@SH H ����HtH��H�H [<� ��̹���. � � " �H;s-H\$Wu�HHHo�X�H;rH\$0f�6_/�#31�;suH HtH:�:�<� H=��tH �:��t�~�9��H� [��~uZH 9��F#�!/#�=0���0=3o�`tH *\�Mm�E33AP�� �Ht$DD$WATAUAVA-@EDP��= ���� ����D% �� �. �HD$0H�k���@ L�@(L�8HH|$ H;r +�`9u�`\H�@�H X�z�`H �k.��L;uL;t L"(H�0q��`H� ��H�� ��Et  ��Eu& ����AL$��A A3��0pHt$xH@A_A^A]A\_̩aj �AP\33DBO� ̺c�p3D=�0u-npH= �3R�"�:�*�":�"8�� O�`��[0MZ��f9 uVHc=' H8PE��t3ۉ\$@; /�%H�(���w$�39���5�=���DC:u"=E �t4��{�l2�����=/+�+�s+�!�A+�+�6��1�@y #�.��H�@ �s �?,��p E�#<� ?�tL> �L? �H � S�ХD$ u1�|$@�u~ FPHH0a(7B0(VHHXHhHp HP"MyM!Iq8M+AfMHL���3HHL@9>+^ CL;���C ����{� �;tHL$0HIЅ~sA}�csmu(H=K��tH B�5H!tI+�KAM�GB��IF@SMcM�/(IF(IMH�) ��JB��H;>sj>3fIy 3I+9.vTH^KL;r>�+s6H;r H;sAE u/;�t H;t#HT$xIDZIDCMAj�1.r�L\$@I[0Ik@IsHI,�2AT��A 0SH0H;u3�`�wm��C ��ucL%&�HcI<�u+���IHuHC HCH���C$CI C$1�0C�HKH K��p�$H@|$8! A\At0 b HsH��ccF$�H#�Hc�H [@SH B@It Hz�uA�&Bx HH,��u J�~LH\$Hl$Ht$WZ�$II@LH@?tH\$0Hl$8Ht$@R�_�P�0A@�U�Ht Ix�7~3M�j� HŃ?u=��8*u�?́���lUVWATAUAVAWH��HJ��H3H$��3HHL$hHHL$xIMD$`DD$TDD$HD$XD$PE3I;uA��3E3E333�����* ��8$���tH$��������AC@L ��< ��H��A;t(t#LcL IAHMkXMɀC� LL A@8u)>�>�HcHƒHHkXI6�B8tA�/ �A1��Et@/ADT$@�DAL$���A:�0$� �VA;H$�����E<XwHB��AHcHcHB ��T$\A;y����/��� � ���<��@Ńd~����A@ �@CQE.�AG% �StmX�Zta�nc���H��IE�II;t/HXI;t&A �sD$P���+��DT$P��H����A0��uA I]�E;AƹDIA�t��I;[�`HD`0 L�:�t,EMH$L$DM @A;tD$X�AED$D�#2��M��D$p�@ A@E;H �A-��A*kxPexg~σi}An �Ao �ptesu�x��'���SfD9t HA;uH+H!I;!F D8tH'�+ˉL$D鋞�/���0 A� Ey`QD$L0AQD$MSA����Da =I}4<CxA tf77T lЃ@A ���T$H*0r�C s MN .TD�A@tMEEE�McEEE� M;}I؜�R�0r � rEE;}A AE;EOD|$`I0#ʉL$HAAA;M;t 3IIcHLB09~ALjHH$X+HÀ� D$Dt ;0 ��HD$D0���u@guA�9�A���~)A]6�Pcy HtH؋A+��aH �p@Hc.�0P!`L$xD6�0L$pLƉL$(HHDt$ A3�D;uH ��H�T$xH3�;uH w"� ��HT$xH2;-uAHH9��E3҉D$DD9T$XK��A@t1AsD$L- At �+���|$HAt#� |$Ht$THl$h+t$D+A uLL$@Lŋֱ �PHL$L�AtA1�.0|$D39D$Ptu;~qHDM�H$��H$���A���H;�rA;u2 �;t&LD$h�?�E3A;u�!#�AljD$@/���7d/�D$@A;|�%t$���!R�H$���I;tHA �1L�:H$���t$@T$\L /A���@/A:$D8$���tH$������H$+32H$ ��H��A_A^A]A\_^]@It:@ht+@lt @wu 돀?lu H� AwA n��<6u4uH�qO<3�2�@7�@d/�@i'�@o�@u�@x�XDT$\HT$x@��Pl6��3;t!HT D$@@<@/H@:��!�!$@*uEu�IE;EC @DtH}�4u9�AAE9�A;‰D$TZD$T @�@DH!�":;� tA@#t1@+t"@-t@0B�2 �2 �`\0 �bpX�T�pHEE �PRg E333Ht$ ����h��@8MwHHXHpHxL` AUAVAWHu� ��X���DbI��LE3I;u{)�Ả �H� ��L;sCE{I AC E{ E{8AC9 AC:�PE{LIXH=�rË z�fD9|$bID$hI;;��LhHc0I���9L`;�!�Q5P�����I;tiI�ĉ�I�=sA�_Ac8�EI� rŋ�H;|�L5� AA;~~H>tkH>teAE�t^�6uH��A;tILcIHAMkXM$HI$AE�AD$IL$��*�:�qAD$ 'IH;|EIHHkXH)�!;t H;tKCAD$ɃE;D{pHtJSEH߳�7H3uN��@ uKHK�"�C .K@HHHQ j�l��3LI[ Is(I{0Mc8I 8Hu%*td$ �E3.)@?���AH8H Y��@SH��d$p�`t3A` P\$pH$!�L\$HHD$P+0$� T$@HE3q��Ht;Hd$8@_�``HL$0 �@XL �(�_�0L� 3-�� s��H$��H$��HH$��H$��D$p�D$t���H$���e��3ɋS��HL$H@��u uHl4��"��F�`H /�T��[H\$Hl$Ht$WH0HH ��AIH@��HtLT$`DLHHLT$ %���3��L\$� \$ hH\$@Hl$HHt$PH0_�@L )��3ID@; t+IЃ-rAw ���ÁD���AFHADH(w�u H;��HH(H �W� � � �@SH 3$�#D���Ld�tLP;AH YX�� 3HH2Hu(9��v ��D��D;G;u787@@HI0n�_HHXHhHpHx AT��q�HAE35i{�@*93{�"{�({�{�AGA;u}�|�OA\̄�CH�HH�/Ht*9��v"� AGA;u� AATAU ALLnIۍ� � ��`A;u�@A]A\_Ht7LLH L��3Ԯ�@S ��A��?1t$@03Nj��^\$ ;�}iLcH\�J<�tPJ At&3��tƉt$$|1H/-� H0" �AL �K$�o�0돹p��~@H3A\0t$C A3H$<u?A��t69+y~-�SDNjV:��;uCyCK HKcw�`t$8H �2̴,HHu5���,jtcsH;��3v�H|$Ld$AUAVA�r0DE3��3|$ A;=����LcH �tjJBt`H �1 5Au9> ;t%ADd$$EuAt�ADt$(HlF�Ǒ�Rn@@��\�@AD�l|$XLd$`a_A^A].�U<t 1|$y L%���33I܃{u%Hcƺ��H H H "t-H��HH;|øA2|$2\HcHI$�3ی�` Hui�0-H7HttH? $�|H'�HH;|H  �R�SH;|�#l$_Ѓ _HcHs�H H%l7�4(aAHcپ�=_���u��N�����Z HL-��I|��t{(���<HHu.� ���3Z ���f���I|��u/��H ��uH;�I\� *�HbH ����H\$0Ht$8H|$@H A]H\$WH HcH=��HH<�uuH߶�" I� _H%8��D� 0IHHt23HBHH;s$HHd$ �E3E333�"]3]H���HHD3HwH ��PL~r�u-=���tHHtO � �����A0_̰�Hl$Ht$�0HHH�@HMt!A�t�P; �8Y:HIMtAA9�t;HH;���HˆHÀ:�uIL8��8/t8\tH-�sm\HHL$`E2G�AsS@�H9�u#�h#�1t+<.t"+�u(.H;�;� GH;vE��"���0#�� M@l$HP@PHWX0t$S@HHL$ AA<AD$(DA|utHD$ H@��BY#3tp|$8�t �0����P}�PXH@p‹A�ċE3n��s1Z�BH86��H8HL$HA�@ 9 ��L��L\$XE3HT$`�@XKsD$PH|$P�tAHD$8�A�D$HHD$0HD$@ �b(H1� LL$PLD$XHT$`3r��"H$�X��H�pH?�0>�@0$p����� ���LB%w�ShH! �p����)�"(��3z�0 ѥ��=���u (� '�P��k�`H4� ļ�$` HYH�'L3E3H}AKAD]D]D] fH=��H+ЃuH���9HH�lt_�@� ��H3H$p�@IP��_�`=��.pH;rD$VD$p H|$V)WDD;wA+IJLpDB uӋF d$8�LD$p+FDˉD$(Pp�� 3? ?��d$@�FV D$8(�@���9�LL$pD3ɉ\$ ;3�3�@A�6�;��L$�HN3At p��At �P��*1��IHu? NDBA@ w B A�{ BH�H;rHp3��I[Is I"\{@ 0. ��tH`t H0n o!/��0H;_��tDBuHV�L$0H;t 53!=�1'�pD$0�0d�HuKT HH\$8H _@SH@HL$ 3%)���u%�������|$8�tSHL$0���Eu�*�b��ԃuHD$ �a@뻀E� �@0E�H@[H\$UVWATAU�.H��H3HD$8HI3ۋ;u H��L-1��HIA�98'��AIH0r���� ������;���HT$ ��N3A��]~^ D9d$ "�6D$&8\$&t-8Xt(8H;w+HT7À II+uH8uHF���I�N��t(t tA;t���0 ����F Df^H~ù���f���9B�����tHlm�L��HA���MDIA8t18Yt,A;wLL2AAAAM;vH8uIMM+u~��Dft$t t A;u�"���^ HVI|�HfH8`|3p8H30$@A]A\_^]HHXHpHxL` 0A��HA����D;C�� ��\$�3H;|:�2�QHA#��Y:��;HAF�a;$-�-�uH � L%��I;tL%��H�`K ������� ���C^��CY �@ T �׉T$ L}HcDKfAH=�#�1+� �}HcʊDB *%�p|$ }Hcϊ��&�`0+� �Hk���uH ^�HM�"�+u&L%-�tHW��3DA#@Ht$HH|$PLd$XH0A]H(=a���uKa3H(�Ht$WH H(HtyH ��H;tmH�хta8�u\H �t9�u;!B�0=*"�"�M"��U�'� g!0:�0tGm�PBH8� E!$�aH��B+�P'�B+��G�" �X�@t�`t`KQu:��!� u-�@{XTH��H9GtHHt �0M(��tHO�3� HuH0\$0H�n@��U$t�C���0�RAXA�! �Pt HHC�Hx�t HP� IuH�0 H���AD �fDH�������� fO �=D �� �0D��H@SH HjHtAHt<LL;t/HHMtI%A:�uH��L;tH3H [@SH ��H؋��� ��tH����t ��+ ���H��H��VH!��HuK �v�H%��3H% �� �H( ��t  �& ��H(H\$WH HHH��H���A�P��� �Ɓt��CƁ�QH-�`��� �+� �B��B� �!�uHE�� b2� �0\$0�(_ô��� ��cHuHH��A@���Pt3 l�`,��˅t3�K3ۋ�EH�@q�q�pHql�pH+�3\$ePHI8|@<-�"KH�.�X� �h��p��x��R������Hס��H;t w PHL$09�uH��p;t$NDC� t+HH;=$��tH|�t?�u "� L� �16�4\$8Pt`H �_����tH0YQ�P1 ���t3H R��H<�u�dl$Ht$ `HcHL$@ID_AwHD$@H@��y���HT$@@��m���@$���@$���Ƅ$����DJ���!Ƅ��DHL$@T$8L:�AD$0A�D$(HD$pHD$ a0�u8D$Xt �0P3D$p#ŀ|$X��QL$P�L\$`IkIs IoHHXHhHp H1#HKHcu� ���K 4��@t �"���3t{$HCHKC{C ��u/wH0H;ti�`H;u ��;uE;��C +HS+kHBHC$;C~Dŋ2!H>W K?t#tHHH��HHkXH H l��A t3ҋDB9i`KD$0 �!0D {�;D$0o@8Hl[5t$H )H|$Ll$ AVH0L5��3I;t Hr�� s<>E|�!`<1 =��a�����=l��A��L_`pI5<� tHd$ �E3E333HM8���3B���w5�u1L��H &��Q�Q� ����HH<vFH � K�1�Y�L8A���H+t4��tHd$ �E3E333/Lh��IH3��+�+�"c'�MOD/�H��A �]�8��E��HHt2Ht,HcHIL%�2T��LL$HLHY:�\$@H|$PLl$XH0A^H(���:��t� s:�u=��u&�` �$H(@SH ���JHH~H'��H�uCH#�3H [H\$Ht$H|$ATAUAVW� LH ��>LH �/c�I;��I+LoI�@9�'I;sT���H;HBHH;rI3H;u3HV H;rF��;t9HHH� Gd�1�qHK �!$�O�01H1t$H�dA^A]A\Hd WH��H=��HHH;rb�0X�)_8�o8�h8�a�� ]@ �m�Wun�HMZ��f9t3HcH<H39PE��u �8QLcA<E3LLA@EXJL�EtQ L;r AL;rAH(E;rb� 9�� LL Ijt"M+I�@3@$Ѓ(K��D� ?0�Ӆt�8��Ѓ(H 3�4��l2t$ЋbE3HP���Lc �9:tIHHH�� s9:tII;C��LBM;6��Iu LZA@%�uu� � �J�u�� s��AMD;}*IH��AIM\ G.�E��D;|ځ:��� ǃ����v:��u ��Gb:��WN:�(�G::��G&:��@:� d�`����AAЉ�!AH r3l$8Ht$@F�0 " ��A��4 �� \A@3|$p3у �� �#� � � �A �tMt,t_�G!t$ @0%� ������~� @%j8 ����@u�RHFkFHLcK��9YtHiH;r� s'�3LaM,$L%Pw�Iw�0O8Iu3���Mu AMy̅t3t tt L|$8Dt$p1LL|$8H ��uDdž������D~t$pu9 i��щL$0a��;}*HcHH���Hd�‰T$0 8��I$t36���;u ���AA;t tuL���;uD,�3L\$@I[8Is@IA_A^A]A\_H 9��H A� 8f��D؉D$ =��u �#��E3D\$ AH8P� H�`@SH HH ��HtHЅt���3H [H(H8csmu+xu%@ = t=!t="t=�@u3D�(��D� ��_�H(H\$Hl$Ht$WH0=���uZH��3Hu���<=tH��H\uG `Hc;?�H5���Hi��;�teH �=ptCHc�PH�;� 4�<rLHH+��tHd$ �E3E333HHcH؀;�uH��HGH%['���k�3H\$@Hl$HHt$PH0_H ��9�v���HHXHhHpHx ATAUAV Ll$`MIAe��LHAk�HtLI3;"u3@"HË9AE�HH3�)t!� H@tu@ t@ uE� G�H3;��l t; uH����MtI<$�1A03'�p;\t�6utHC8"uH Ѕɀ�p\Hdz�@u tOu< tG< tCt7LttH��9� 0H���bHY7�C�h�P�I$$�A@|$XX � "_H=\��A��3HN���,[��H=vZ�uHHD$HLL$@@HH-Hct$@HH;s\HcL$HHsQHH;rHH V8LX�5HV�QgD=��A3D��P��0H@ qIAt$A;u2�I;t I@!ф�� ;��xDΉ / ����I;u[@�pu3@fD9#tHfD9'u �`Ld$8�0H+HL3DO3Dd$(�� ��HcA;tA6 ^q�1#�C��8�A�a3ɉl$(„��A;u H%I U�s;t A;L!��:D8 tHD8 u�+HcT� ҍ�aI;uY��8���LH A]�ǩ0l$X`H|$hH@A\̉L$ `E3�08�@ԁ t#LD$0A���3HD$0A��[2Ha Hs$0�H2-+��H;t HH��vHL$0Ã�\ �!gI34 �#��L$8DI3w��L\$8L3H�$��L#H3-+��L;LDLj��ILh��H\$@H _�`ff��H��M3M3Hd$ LD$(N��H�9�fD��HL$HT$DD$I \�&f-�`���H8u v� ���Rx.; d��s&HcHp԰� HHkXHD@"7Hd$ �E3E333O�BL3H8@SH@HL$ HD$ DH@��BY%���|$8�t HL$0���H@[� H�O3J�&�HH���tfHt_uI�Q~I��"HMHLHI3I#tHPtQtGHt9t/ �R!t� uHD�������H ��cNH9 ��H\$fDL$ UVWH`3IHHH;uL;vH;t)3���H;t Iv$]���Hl$ roH$=�L$@$(@A9k���$������f;vLH;tH;v L3Hl͇`*���^�q�@8l$XtP@$o�p`_^]L�CH;w<"��AM�@Hx$L$Q�7H;t��v�@)�QD$P �$����AKHD$820L� AG�3҉|$(Ht$ ,��;t98�0�;td~��ze� L�%�gB��V�2808Ã%y���,��) !`w|� HHEH 9��Hu A!/Q ��@}7Hu,9 ��tHt  J� �H� 32d0Ht$87�@H� H&jHu\HwCH o��� H�fLŴ�o9W��tP��p+Hv� �>�0!@|���o����*�03HHHt13HGHI;s#H!|$ !�L u=IHt%@HmtH;sH+H 3L᧸�p@pPHH0��#@0&au#:�\��3P FAt:X�`ˋ*� (��yHK(�@ įc(�c�ǐ��(�PHكiu$\��& &A@ta�~@*@(��y�  UVWATAUAVAWE0��j��H+H��H3H$ ��33ELHcىl$@Eu3��Hu.!8H!|$ E3E333���� ��LLH��IAJ Lt$PMkXAt8@@@t@u AШtAD t 3ҋDB����H|��JAD��S3HT$XH���HR��9YJ I z����t @��kz��!|$LI܉D$XEw��Dt$X ���-���HT$P E3 H-��AA|P�t ADLL$]A���D$\AdP��\It4IH+IHd�BL$D;�H5*��v�pA�0H*�$!�U!� d$8�Hd$0�L$XHD$\LD$DA6�p3D$(@��HD$ #y��B�@D$PA�a �H �q LL$L�I Dx��5�B��A+|$@9l$L��� ���En�V�@l$\H ��W�DEH _�3`\� ���|$L|{D$@e@tC�uE3f f�wH#�6L$Dh&��f;D$DS�Etfl$DI�@uxi�A+A;\$LLt$Pl$@Ez��e��� !;�JL�ADLJD�ADP�^�v���H��J ��3I_ ��S Dt$@H$ ��3ɋ�s&E�H< u AH�`H ���rH!\$ H?�DD+H��Dt$@��AHH$���� @v dt5|$HB�H+HcD$HH;D ź��Nu�@�A"��6��1E�HufAH�Hf�0��/!� u�oJ�Z�?�PEY`N��A �5p3ҩ.�P fD�@H�f���rȣ�0p+pU ����+3Dț -uv3HpHcH JEH �BHD+ tt t$HD;-tD;�A+A;@C�^VEIgS�|$H3" sS� O�~Hh#@t A<$.4I �H+H H3H$��H=4A_A^A]A\_^]H\$Ht$L$WATAUAVAWH0ELHcكu38{�� �&�3;���;��LIL=��HkXKL0u+V�$cV�)Hym2%��KD0tEIՋ� ���08d&��) �T8'�>H|$ E3E333 H\$hHt$pH0A_A^A]A\_H\$L$VWATH0HcuV�6������;=�����HHHL%��HkXILu%Q�Wd$ ��!f�z$��;�Dt+K$e�~r��u tq��3ۅtc�>%��#�H|�!|�� `A\_^WHPHHHu$莿A�0�X3vHtH;sHL$0IPL\$8A{�u|$H�HCtHHL$@���:HSHH;w BDuHH+ʃH+<�(t 8��J��PE3<Hl$Ht$WATAU�E3IIHHM;uI�u 3>I;tI;v�D)M;u?D)艾�Ll$ 螽L\$PI[ Ik(Is0ImPH$2�38HHE9ku LLX��D8l$Ht�HuHƈHA:t.Hu&� � tHuI;uD)HI;a�.�4uYLaIL;rHT$0A;tHH;sA+ƨt*E,$耽*���� P/u\HvOHt+HH;f�f�Mf�H;s+Ǩt D.X�QD$@'P���Dl+D+"��UA G�0a�r!P�H+H|YHq�% �z+D.|0z��XH�p@U0AVApR`Hl$@H]PHuXH}`Hn��H3HED�����3MLMDE�DUHDnD;uOLax��Eͺ���3ɉ|$(H|Ln��;t ED-��m��D��xDDD��L]DMpD;~5AIA+@88t I;uA+A+A;} DHDMpDȉEpD;\��D;S��E;����D;uHD`)MA҉� Am��LcD;<��H� A��A���~[3HBI.rLKL?I;w.HAH;wHHZ\��H+H|$@H����HtD0H%�GMpLE���AD�l��3;K��U�L$(HL$ MEPlHcA;!T�U�A s;X�;��;/MD$(HExH�AHD$ ol��5�2~`1HQQHL6*#W[\$@I;t�E3HI;DU�I�5tn�PA҉t�\�"k"t?�3HL$8DLH-L$0;u L$(HL$ D$(HExHD$ A/k��HKD91u菻HO�x��HLD;u HDpDu���uHxAh ��Du3��L}xLE;<��3LMpЋω\$(H\$ ��HH;tDMpU�LAΉ\�<\$ j��LcDMD;u��D;A��~bIIwYHH���w4HYH;w H�FHHY��H+H\$@Ht%��HHtD0HDMHu3Mc3HKD]D�@MD�@LH�*j��Eu3.���LMLÓAL|$ ��}L3L;D(!>�Dl��>�1A<�&i��3H;tHL;t M;tI诹HMH3� ]PHuXH}`He A_A^A]A\]�Ht$WHpHHL$PIAК$�a$�����@D$8$���D$0H$� ˀQ($8�0Nj֐O|$h�t HL$`���L\$pI[IsI_DUATAUAVA�+@Hl$0H]@HuHH}PH��H3HED ,�����3MDLwI=LM�Hr� Njh��;t=��6\g� ��xDDD ׸B&1 �C��uh;uIE�p]xDMXM0cp  hD;��A@hHL;wYKL$5HAH;w &�HVH|$0H;��� l D(HH*����M3HMl�?PDd|!Vg(LM`DHWg��J)u7.DepHD;uJD`(`A"gu3U;t$L:":70P�LHE`�A�iQ f ;@誶@HM ]@HuHH}PHe�j�`@AI̗�@8B$(aLNj֠�1.XPH\$pHt$xH`�`ff��2LH+��Irat6t  IȈHtf IfHt ��MIuQ �tH H�IuIM@� a�IuIf��fffffI� ��sBQ�LT H HALQHD � IHALQuIqf� fH���r ��� D @HYpuH"�!@p Z��L LQLL �`LI�� �P(H@���� ��`uIb�0I� � $���|ffIȡ4HɤGHBH22uP ��0TIHuIMuI�HɊ IȈu�f�@��fffffI� ��sBHD LT H HALQ� L IHALuIsR�P�#H�w ���H��� D @uH���@���LLp�LILQ������PH@���� �LuIb�0I�!q $�H��SH HHI蒲HK �2 �2 w �2(n �10e �1 ]�BK@T �2HK �2PB �2X9 �2`0 �2h' �28 �2p �1x �4"� �p���� � � � � � � � � � � � � � � � � � � �| � �p � �d � �X � �L �b���@ � �4 � �( � � � � �( � �0 �!�8 � �@ � �H � �P � �ƃ [HtB H; ��t&�KH; ��RH; �~�J�4)�4RH; )�U)�rK H; �C�R(H; �1�R0H; ��R8H; � �R@H; � �bKHH; ���@@�@0L� HtMu,D86d$ �E3E333ɉLH0[À9�t HHuHuAA�IHt��Aڬ"���3뵌�MMuH�u 3?Ht��eD �/�&�LLIuAIAI„t,Iu$� �tIu{�E MfK� DDA@P����Um�KHta/׫�(몸�LGAIMMPI��s�|3�$ff`H+LtB :uVHT��WH���uI��J ffwHJ H;uI�~LHHI3ItHH3&t't#Htt �Rt �u3=�� �`Ir"�f: u,HIuMIuMt � �uH3�It7HH; u[HAH;D uLHA �pu=HA �u.H Iu͸e�$t@��uI��‹ HHH;~�qH\$W@cAHT$8 ��Hu蹩� WT$8LD$<DH@\��D$8/�AZ��t 辩HHH��HHHkXdHD$8H\$0H _H\$HtB$L$WATAUAVAWH0ELHcكu:38� ���H���3;���;���LIL=��HkXKL0u,W�%W�|$ E3E333Чk�qK ��B� D0tEIՋHpJ�!\�H ��H*n�%G)�Hs�]s�H\$hHt$pH0A_A^A]A\_@SH T� ٹ���HCHt KC$�KHC C$�%� Cc�HH [H\$Hl$VH@ALL(3HH9��L� m��iY��H��Hm�qEX���s�ԾH!�`HCD�(�B�N�,�!WP�"����wLH x�pt!Hl=�C'�PF���H �Hϩ��LЩ��H;tcL;t^H22�0 �A#h�`Ht?t0:�)-H$���A ���LD$0HL$ AQHAԅtD$8u>H IV�;t2˽I�`(H �SH 1 �3 �BH#� ���DMI"�@3JpHl$xH@H^H8x ~ u��1�� �@#蛥Fd$ �����谤H8P�Hu&j1� L�LH '��3�F�0̹ 鶋H��n��t v�r*! �G��t_�GV��HL$03A=� E $X�3HD$@HD$0��@�P H$A�� �R(UF� U��I� h�HHXHhHpHx HPLHHHEMFMtMu�Mu*;`(P|$H���Et A|A$A.LD$03I^A ��~x`@ͺ�D$0I@���Ht@+H뾋$���@-u@+u �ES��AI �B$?�u(@0tA8;xt ;X���&A����0u.� u&�;Xu@kHM�3҃ADȯ�EJAt @̓0A��t,E�0<w A;sA;r"u;vMuH@uMIE3YA�둽@u@u:ƃt���wu';v#聢9"3t @$I]�@tt HL$@���(��P@8|$H �QD$@ � 3L\$PI[ Ik(Is0I{8I03EL‰D$ H9��u H 2��3Q~���k HcStYHå��u @���u ;u@`t��@<�;t �T��u R��3ۋ_HHAHpS��H MkXBD�t b3H\$0H _H\$Ht$ L$WATAUH0Hcكu 38� ������3;���;Ť���|�LIL-Ƥ��HkXKD�L0u+賠W�$W�H|$ E3E333袟�a��B�D0t IC���)Pc�) � c�?c��2`Ht$hH0A]A\_@SH AHt"AtHIbc3HHCCO%[HhH ��H3HD$P=���fL$@tfH ȓ��Hu 2" �P��d$ �LL$DHT$@A���0R�����=���ѵP��xu}%�"QI�8�Hd$0�HD$HLD$@AQ�p3D$(q�pD$ 3�3 )� t0:��HDQ��tfD$@!��P�P��L$PH3艂Hhd`Hl$iWHP3IHHH;tL;t @8*uH;tf)``Hl$hpHP_HL$0IJL A9ku%H;tf@8l$Ht H�q���BPR0;�L$0D ��A~0A;|+IH;LǺ@D$(1R TP�0;uHc=�H;r(@8ot"��4HL$@�#蒝A*���'� ��dŬ�qAQLLJ�AD$0�HO��;E3��+�  Hڅxi; ��saHcH-�"HHkXHD�H<u==J��u'tt ux�0 �OJ��<�3蟜��J贜 �~08@H6_̰��/ xs; _��skHcH-k^�HHkۨ��DtGH<t@=�)���`3NS�D�H �%훲��D08Aޛ�%7�]x1; ��s)HcH h�ƒHHkXHDtH,J� lE�0聚�d8HHXHpHxL` F Hcِ@6��2kXKt�|3 �u3O J�'HL3��o#D3 ���tKL�HLKzt$8H|$@Ld$HRA]/HLH%HK���|$Ld$AUAVA @IEE3AL$ 诠uA�� �3|$$H?��@��LcJH�j�0JH��;���ClR{ �u;�(Y��C HK !O� DpDt$(C(Eu/�BdJZ� t ?�\J��H�6u?CL#L��K+H.袋.HLIIH?LDDl$ HXH\$0IHF�� E;���lj|$$H+�DX���JHD$0HttHcL��IЃ�� I H� ��H;s@�L @ ` �HXB�$|$ HcHHHkXIDHADD.�& ���ŞAH\$`H|$hLd$pH@A_A^A]H8H|��H3q�P(LD$ A�����D$&�J��u HL$ ��HL$(H3{H8@USVWATAUAVAWH���Hl$@H@i�HE0L���E!3IH}�LMDDH];e� U4I��;���}Z�UA��uzE����At`A3�acH�pH;�L H���wlHAH;w *�$H8��H+H\$@Ht<��NHxELú~�pω|$(HhI��o37��VH-����H3c� Lc3HMtLEE_�\$  I��E3A'���M;t;���L|$8�0D$(DL3ALt;�AfH��8����I���D9}�u,6�;�7�D���P *H�A;tWHc׹�0�`I;tB'� A��@��qQ G|��u HMI HMHK9Pu+[�HM0H3lyHeH)A\_^[]3DB yLMt<E IAAwA  H�J It EtD;tD+A3HHXHhHpWHPIHHM���HHIxHu=d$ �E3E333�|$H�t HD$@���鈙`tH0w$�0x�u#LHHD�Z1@D�LM�HT$0�� �pHZHtt;t+،�$L$H�c3Fal$hHtF P_h�D=E���uAHu'�A�HtI��wXE3?�8HHHd$0�d$(�A@ PZɺ���@DDmF��H>!H<�Q(H �t Ht*�= ��P(`Ht$P =Vy�@tmHuH9��t_+VH��`JHtE ñH Ht2z�;vH <9=u0F�tHHHD8}0xR8H x2\$��]ATH0IHH]ę3Hu&fy Ypz�!'�PH#�?�?�?#'?�`;z�Hu3fHL$In%%�ϑ� �Б1LI;� -t� atL#3�`їí@0HpPH0A\l@pHcPMu*�sbHT$P ��~ LD$P���HT$PH@��xtHH�8���|$h�t HD$`�������6P ��~6HT$P@t@$���@$���Ƅ$������� 袐�3�*'��/�!Ƅ.��HL$PD$�A�LL� AA���D$8H$���D$0�D$(T$ QHL$PCً�21��t $��� �QL$`�PH$S�+p_HHXHhHpWH`HHHHIIIsHu8\$X9P9@3P�u:訏Hd$ �E3E333����轎|$Xx?��pHtH� w"Hy�uLLHH��1AQ @-\$0LA��H|$(\$ ��tw�3L$PL\$`I[IkIs I_E3H\$Hl$@�pP�HЄ#H���� 8�"�a0�d$( �0 �D��@��Hc5��1H n.D$PHtzC�I�`LD>��HD$ c@�G�QP3� y.PHt 谐P�HH�Y3H\$XHl$`H@�I~@USVWATAUAVA hHl$0H+r��H3HE(H���D҉U���A3MDELH}Ec;uOLJ��E�bDd$(L� m@��;t AE\$>��WV��xADDU�@y� �;~YAIA+̃8t I;u΋+DD,�13�q~5AH3�0�0�1D)�D;}3��D;|A;���ѧ��A;uD\�uIDiD;t D;���E;uA\ �~AO �@~ @��HUA=2D�;~2}r8]HEt8XtA:r:HvH8帊p��9�!~+:�:�8Xz=�=�MǺ ���A͉\$( W>��LcD;I�B~d3HBIHrUKL6H���w.HAH;wIH5-��H+Ht$0H;��H;t���HH-�CpMAADt�t70 �L� =�D;���~g��UXKL$�1�% H��#g,�|�bt� )���tH;tVD�!E�d�|�!<�UM�EL7�� 6=��HO9'u軌HN�a HLD;u IDPDU�DD`Ae;�A;teLMNjA4�LELz9A+� �H;u H 4�`L<���.M4<��H;tHI轋HM(H3lHe8A_A^A]A\_^[]H\$Ht$WH`HHL$@IAlD$���$���HL$@D\$8D$0H$���HD$($���LDNj։D$ |$X�t HL$P���H\$pHt$xH`_̌�aHHn�II[�u8\$XO�`D$PO�3���Hu=;Hd$ �E3E333����P�?�qB�`tH��wHD$@PuLLHH>@��LΉD$8\$0A|$(\$ u複�y�T$UVWATAUAVA0E3LAI;u$C�RLl$ p�Y� !M;���=���I��HppI;*�>;���D8hH5|��EAH;5|��upHAI;u IUHL9.u���Hc蠇_�I;u 'mH.HHHE�(�)L/H|$pl$xH5^|��I;���A;t9L9-Y|��t0fA;tj@dqH$60]E;t3߹�蔆H{a��tL(L9-{��u"�r"�"�L(H5{7I;tHHA+LcHt?HM`!HA|�=�p8\�v��HuH5rZ�+HE3A;`9m�2�cHL�;tfL9l�tHLHHHD�H�`uHcHH;L� �{��AI;t|sH5z��H�rLd�M.]E;�}ߍG;Lcg�L;n_��;b�XHcL$LlM.Htz��D9l$x`�aHOQ��l`MHHPH 0+8�HI+HT$pD*HE;IE6�uK*u�po8 q�bM.m2P�0LT@0H@F<�HH �Ht-HVX@*,t0p0�P3:@Ht$HH0_8BPH70I'g3H;uD# � 9@8t$HV@V�m�`m�hHP_HT$89ru _9�"@. f;t3DtH@83t ;u HC;tH �Ol�&HfE3�:t Hu:uH3%03��%�3��H8f0& %+m9�tHtHȀ8�tE3N� 8T$L$SPXAADd$45A;u踁38菁f�p��3D��;t��fLL AIKC�HkXD1��TvU8.������;����H;tD|18A���EAAσtu ШtLd� A;AB؋MLH;u踀v�a ��� ��=�$���3DBL !A<�KC�L\0@ �IA ���D0H���L0 A:�������AM�5� AAIUAhDD0 D:tb!��L09A:tQ;tM �AHAh3�t9Au.�@L0:4�V;t4�1�@A4�B:K�4L$0DH 1H|$ 2��;��HcT$0;��H;��L@K ��y��A��;tA}� uL0d0HcIMIHD$@L;:�� ���A$< ��@:t HI���HD$@HL;sID$8 u I���L���K�L�`H$�=� 1A���I� 1�au 0 �{9|$0tuL0?�QHt"I�d t'@+d�!�D1 GI;u'�u 3O{�H]%�L>tL>@+HL;d$@�@P0 ,PA+ 0z��A�+uI鲄I;rI+AB8�4�t B�p;u}+*=���;uHcH^�Ht;I߃L0 |)I߈D19u�:J�C+-EHc2D$8L$�+DMʼnD$(3ҹ��L e/��;uI.��}A���Dd$4;HS=J@|0H10;׺rtfA9U�m N<(M;{� $fE��f;tfHI%��IGPf9uB�/��3!.P]- �`���0R�Ll<F�@f9$X�qtKf+ ��G$��`T0:WK�suf>HDBo+�uL;}�4 �� +.`M;"t��`! Aj[!M;tI` DDAi5,��uz  �muD뮋z3)z1��<�E3E333ɓ@yHXA_A^A]A\_^][H\$Ht$L$WATAUAVAWH0ALHcuBz3ۉz����3;O=}��"LIL=}��AMkXKBL u.yyX��� �1x�0�0A;u+>�>�� >�>�n�D tDIՋs:y� ���Oy) �E'�H\$ E3E333)xH\$hHt$pH0A_A^A]A\_HHXL@HHUVWATAUAVAWH���3AAH@���ox@$���HxEtxAl$pDHL$T��;tE�LH|$ ivr�@�u |$T���tE A������A#Ⱥ���;tT+t:;t1@x8 x���Ed�P+w(&��D@t���uA���@D$���A���t,�#��8@uD;A Aϋƺ���L$H#tF=���t8=���t*=���t=����t&=���t;t/A��� �AA���Dl$Psm��"$���AEDD �@@tAA���` s ��`@ t� @t���Iu!vk vv���H$�D$HH$|$0LL$`AT� ( �l$ B)��HD$XH���#;uC]t9DV�QA[�X�2AU�'(U�u;Hc L-z�HHkXID�dJ'��vu81�&��;uMH� y�H�H� uHL$X6(��;uuu6 A;uA@ uAHT$X %m�[m���1D ���DtHc H�8A$HD$L��Atx Eă ��D$Dt8���tP HT$@A|$@;u|$@uHcT$D ��t ~2E ��E� <N@�uD$T#u #=�@��tJ=���t,=�@�t%=���t+=�@�t$=���t=�@�u($�����#?AD3@ �|$DA@��A%���=r`$�� �0t|���;-�;vv8l��l�#A+ ,�P��D$D����3H;t/n��%|xDQb�aA;t >k|$D�uD@D����D$D=��u\cr*`���!u#�RAdEE#�B3p"�;;vqA;�E3�2�� ��o`8�� A HcEHTDD+N�mD;daHc @�@@%�&d8@l8HcHƒXIL�ƀd8D8@8|$Lu!![HL -@5P>$��D$PFD$(@D$ �A1$�� u6"��~q`LcIAHMkXID�Bd BHcHʃHHkXIL�H H$���HĀ���A_A^A]A\_^]HĉPL@LH VWHXH`�E3HAEu(p����Hd$ �E3E333o���H$���HD@d$0�DD$(D$ @���DLHT$@HL$DvD$H|$D�t9t(Hc|$@HHHLCt��HkXId|$@n|$@t o0HX_^@SH0MHHHu&oH��0n�UHtHL$ LL$XLD$@IH��tL� D�ӹ�����HL�`q �1X �`H0[�H\$LD$UVWATAUAVA 0E3MLHHI;u("oE~SLt$ �8���D81tI;tHI;tD80t\�`v��/Hf��A���I; �@4W9HR�!�;�.IHXH{o#�#�sLL5*uA;t�XlLHH'�1lH~ I;tH;vHHHύS/ m��&3 ��A����MIa� �0 !l�L`IC����LIԾ�/� kO�@"�"4mM+D8I<L%0c��HD$pM$HIhtH{Kk3HQ ��tHb��IL;HD$p}m7p�bD8��A�@;t�s �pH\$xzA � HXHhHpHx � H33DGx� HPDG3ҋ-t=HH+H;���^���WHMH;u1Nl� `Cl��6@Hl$HHt$PH|$XH A_A]A\ú���v��DDI;HEMNj询t H�~ l8u ko� Aԋ+�  H3/��U}]E3HՋ�T ��HHHHu%vi�!'��!�@!I]�i]�p3��bHt$cAN{�qug� ���RDE3H��(�V��3t kHHHn��lHHkXgG0\$08_<\$LcHn^AIMkXJ BD8F\ADA�@��tXtH���t(�@�t � �uHBLJBd�8BL�80��Bd � 8�8Eul�A%�����i�8Hu'ida h��� m��3H8LvHT$SU+���3GDgDD;tt~A;~;uAM@bi8';iE3E333����H|$ Qh@��IA88uA8xtA� �0h.�tL$p3LfF\$pl��Ll��;t/SHcHHHkXI@8|u;u;��q����ú���fLf$���riH$�`;p�QH�LcHHIT~WLDL^l��MIA�"MkXMABu IH@9H IHHIub�D:t2A;j�DLD;~A?��9�@�uA���gH$(��E3ɉ8HD$PE3HD$H �@pI �@n�"88� 0Dt$(D$ ���$����T�(���Di;u Agru3&Q;u+HL$P=�aL$PHY�0�!c� ���;u 4���H|$P�PXC�f� H���A_A^A]A\_][@SUVWATAUAVAWH,�K��H3�`xHz-HHT$hEfMHf-��LL$XfBY-�B HHL$`A)`0Lt$8 �4HAHזH|HI;un π�HgI�u"Mu� �! ��` D$hHL$83AA;t��h�� ct0�0hK�L$8A<PI;t 3�@ZE�H�9�tEd� H[��I;u+訑HH�uIgM7� ���E=D82t(H:t貕>�.K[��ElIcH A:uEIc/@8qt0y:u*8Yu%AFHcHpB� B�tIcH8tAHA+DDd$@H9u�t'97� L��tRH93uDA̯0he�L$XHHuKIftM7Tdid� ��D$4GpDd$0Dl$0Dt$0�@`ILMuH8HT$HHtH!t$ O0a�!mHHHHHtVHt$HILHH+H起L�`Hd$ #M� !_@ O� ��L|$XC��I?H d+IcHH|Y��Ic޵!&@HL~QKALa+�+I!��PM�苓�"�K�uD9t$4`c\$PL HζS�`L:��??+� `_0L$8,a'LH1�1�U1�E3I;tI;?uD7H�@ cX7ctd]�EL5M�@dL$xH3E� ^][@SH0Hu-a �.hM`Pu��u��@� a�'u!ttaXh � ���3H0[H\$Ht$WHPHًHL$L0I3-EHu6+aH!|$ E3E333����A`@8|$Ht HD$@���3LD$8A9xuHQ��,�cHL$@,�6U HBDt%HÊ t ;uH{Hu H;HDHÄu8L$�T�JHH\$`Ht$hHP_E3H\$Hl$Ht$WHP3IHHL;u3��HL$0I DL\�kuLH�E��H;u<�`&�e� + _+l+qA�0t HBDtA@8+ufKfHf fA;Kr�wfAK)�0r"�0w�BDt B��HBDc�/c�c��fHf fA;Sc�Sc�Sc�Sc�Sc�Sc�c�c�f;u*f;t H;$�h-@8!0l$hpE34LHA:uHI;t8u8LDI�`ff��HL$LM3LT$L+MBeL%���M;sfA�M�A�uL$LL@UH0HHM`:H0]�p Hꃽx�@t =! d"� "�HHы踀� 5�-c�HcM HHc��Hm}�' ]��I�I��� 8D�� ��HĚ� ~�m5� �T��2�;��9� ��4C�4��!�H3Ɂ8����}p�t3bJ�HE3ہ8��AA>�yHM@8:��V�oMP��:`i�� <� J�#��>9� 9� ���� �X@X+}D�t7}H�t'HcU@HHHL_��HkXIdU@�0@]Ø� B3��������������@��0�H�`�t�|���������"p�*�>�Z�x��������"`� ��*�:�J�X�f�p�������"�x��2�H�b�x��������"h�$�4�J�Z�l�~��������"p��"�4�\�h�x���\� @h�@b�"<S�"T_�"g� <�"�"L� ��failed to get exit code from process. ��(�hcreate�b %s�%sR�Could noL� ec�� an� find Python executable %s '�A�#!p�@.exe� #!�2��C@�Aopen.�-script.py �rorExitP���m�s�c�o�r�e�e�.�d�l�l���(�n�u �)9�R(null ���������EEE�@50�P"�( 8PX�700WP�� �`h````��xpxxxx���������'�A�8�r  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�=���runtime error �� RTLOSS��GSING�v�DOMAIN�R6034 An application has made an attemptsload the C �library incorrectly. Please contact2�^�'s support team for more inform�.�0����f3 - A�use MSIL this assembly during nativ�d\�qitializ_� T0�0ind�es a bug in your . It is most likely�result of callm�!an�Q-comp(/clr) funcTa�nstructor orqDllMain���2��enough space/Plocal�1018�0#in�e�2CRTpthan once.h�0h��N���e�d$�PR6028 �!un26to "�P heap&� 27(��D���'wi9�8�68�space for st#dio initialization ����R6025 - pure virtual func$�Q call)��(�4(�not enough space for _onexit/at�a table7��`� 198� un� to open console devic,��"180�expected heap errorT�(�7(�multithread lock4�PR60160��5�Fdatac��g�� This applic8 has reques�the Runtime�terminate it in an unusUway. Please�Ptact >�\��'s support team\more inform�.�AR600X�environment.�0X0�@argu-�s.�0�20floating point��G�bloaded3�Microsoft Vi�5C++pLibraryQ ��...�<program name unknown>��KEB! P'� : =������ ���P�� ���S�����������J��EEE��00P��('8PW��700PP��� (���`h`hhhxppwpp������, ��$(�� ��?H�� .�� 2�&��/��B�&��/��@� h]%����&�/��8����� � � � � � �$ ��?H��7�$� �?�� 0�/�,�0�7��󀁂�  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�k ABCDEFGHIJKLMNOPQRSTUVWXYZ �{qHH:mm:ssdddd, MMMM �Ayyyy�bMM/dd/ �aPM��AM��December�Y��Nov�@Octo�DSept�August��Jul]�@June@�April���March����Februar(���1Jan�0Decl��Oct�Sep�AugP��Jun�May�AprH��@��Jan�SaturdaH�3Fri �u��Thurs�w��Wedne�"Tu�1Mon&�#Su�`at�Fri@��4��Tue�Mon�Sun� �GetProcessWindowStation�UserObjectInform�A6�� ��LastActivePopup�#Ge�O��MessageBox:�USER32.DLL0�SunMonTueWedThuFriSat�� FebMarAprMayJunJulAugSepOctNovY����CONOUT$�.comR�1.ex!.bG�Q�.cmd�\���SystemRooe��� ' �t �d �T �4�2� 4� �p����P�� �Q� � �d �T �4�2p!�������<��� �Q��(���H��I$���H�I�dJ�i�TRX� �K�p0� 0���bp`0��+��u|��I��` �4�R p ` P�r0�0�20�4�2 p �d�4�r�l�'��(��xl� � 4 � Rp$�*��S+��� �B�� � d� T� 4� rxp�t�4�2  � 20�d�T�4�2p) �4d�Z� p`P������ � � t� d� 4� ���+�����`:��l:� �"=�� � �0�� �t �d�T�4�2 � 20�d �4�R T�KB��B����H� �t �d �R0����D��MD��0�C��jD����t�d�4�2�d�T�4�2p(�d����OF��F���� � 4� RpL�* �T �4�Rp�d �4 �r p � �$�d�4�� p�tQp��T�p��x�M��N��4x��4�r ��8���( �t �d �4,�f-R��RL��20l�V��V��Ml����lW��W��f$�W��W����4�2��4�f.Y��\Y4�fqY��Y4�,�T� p�d �T�4�2p� �t �4�R��e2H_��{`����P �B�a��b��� �q9b��=b��� �d�4�r ��e��sf��x�P�bp�f��g���  �t �d �T �4�2H2R pT �d �T �4 �r�B�02p�������4�p ` P`� �4�R p�4 �u��v��R����/ �4qf@� �� �d�4 �R$,~��]~��NT��4 �RJ$ `|�?����7(�x, � p �d�T�4�p- Et�d�4�C BX�����4� p1 5#t�d�4�3r 8��h8�R�4q�2 0`?R0� f֖�� �  �T�4�r p `"� �d�T�4� 48 �4 �R pf��(Hb�|P � T�4�2 pd �t�dTk����e0��t �4  ����~0�4������b� (���' EC� p`0�3��PT �d ,��٭��p�PTT� �T�4�aT �4 $ 53Ž��T�v4�R P � p ` P 0�(g ��>,�! �!4�! p`P�rP�p`��+�����������^ �t �d �T �4�2�d�4�2 p�4� �� p P 0��# �� p`P0��x���P� �4 � p�d�T �4 �p��r�N�� ��",����" ��0�H�`�t�|���������"x�*�>�Z�x��������"`� ��*�:�J�X�f�p�������"�x��2�H�b�x��������"h�$�4�J�Z�l�~��������hC����"�4�\�h�x��@SGenerateConsoleCtrlEvent��GetExitCodeProcess��rWaitForSingleObject��Creat'�A��SetU�Handler�V�!ModuleFileNameA���EnterCriticalSection��Leave�F�Y�W��/Sleep�"Get�AAddr� �����q<� CommandLineA�RtlUnwindEx��V�0Cou >R�2Std�0��B���bType�<�artupInfoA��Delet�;Termin)0��L�aCurren���QLUnh0`dExcep Filter��#Set�IsDebuggerPres�cVirtua�0���LookupFunmEntry���`Captur`text�� LastError��HeapFree�� �pAlloc�](� CP �T �`ACP�� 0OEM �IsValidTage��Enca oiX��De��@FlsGetValue�A�S�?���~�VThreadId��>0��q�Writ �LoadLibraryA��InitializrAndSpin L}�EnvironmentStringsA���/�M2� W�WideCharToMultiByte�H�AW��x0Setn0rma$1���C��SQueryPerformance�@er�jATick�0��h�0(@Id�S&�SystemTimeAsQime�h�"ReM>�AGP���Mode��CFlush@�Buffers��LCMapStringA��MultiByteToWideChar�LC&�W��@Get4�TypeA��C�HW��GetLocaleInfoA��SetFilePointer��HeapSize��D�CloseHandle�WriteConsoleA�GetC�OutputCP��&�PW� S�dE��z�Createu�A�S�Compare�JA��V�@W��ݤ�EnvironmentVariab�KERNEL32.dll��hReadX�2��4�2dOf�& pProcess�0�� ��AttributesA��NWE@f���!� �H���3�'���0���� �'2-+��] fL)��"��/ qC�x�@����� ���������� ������ ������ ������������ ��X��<���X����S�����x�!h�5(��K�(�C�@P���4�R(�S�@W���`�@Y���|�l�m��� ���p������r����0�@����� �P�H����)�����p��� � �"0�$�4�x ��� ���� � �����������������*��� .�,��0� � 0� �@�= P��4�` � �� abcdefghijklmnopqrstuvwxyz� ABCDEFGHIJKLMNOPQRSTUVWXYZ ��� ��0(@@��`y! �R��� �"�@ �1@~���ڣ .�3��@�0�A0����Ϣ�[M��`�!~2��Q��Q^ �_j2*� ���1~:�1��@"�C���� �F"@-a� �1�������������[@-@������� �/P2@�1�X�# ��"0�Px�\��"�( �Hh� �"XX��(� �" � �`��(��"0������h��@����"`������ � �"@�!�"�"�P�x�@�y�0�z� ���m�"8h��5�����������0"x�"PL�H�D�@�<�8�0�(� ����"`������������������`��|�t�h�`�P�@�8�4�(����D ��t�|. ��@"lB(�-�0���t����w�� ��"p�"0PST��&/PD@�+" 3  ��4����;���Z�����������������0��N��m8�:���Y���w�����������������/��M��l8���� ���"80�(� �l4������x���Y���`����x����� ���������������<���(��e�� ���������������]��T�h��J���L��s�St���b��$�b��Z$�S\�� �S��$�bD��0�b��0�����P ���"��|�"��&#���`#�� $<� $��$���$��%%���%��%&$�S(&��a �Sd&��z �&��&���&��'��(�'�� �'��>)���x)��)T�)��w+���R+��+�+��--���0-��.��0�.��9.��@�<.��.H�.��.��H�.��V/��` �X/��=:��\�@:��-=��T�R=��f= p=��>���>��?�� �h?��?��� ���"?x�b?��\@l���P@��XR@��eA �chA��AXA��-B��܄�B��B��0�B��YC��x�\C��C`�C��D�� �D��.E��L �0E��Ex�E��F��t �"F��G�� �G��H��I��{I���RI��I��K�� �K��K`�K��M�� �M��<N�� �"N4��CQ�� �DQ��<S��4 �"dSD��"T�b V��wV�xV��V��d � W��1W0�4W��W�� �W��lX���"X<���Y�� �Y��IZ�LZ��U[�� �X[��\��H�\�� _�� �_��S_l�bT_��_<�_��`��$ �`��`$�b`��`��a �S(a��^ �a��!b��\ �$b��Gb��| �Hb��dbH�bhb��6d\dd��f�� �f��%g�� �0g��bg�bdg��g<�Sg�� ���"hh��j�� �j��k�� �k��jm�� �lm��m��0�m��kn��8 �n��n��H �n��SobTo��oSo�� �p��r��X �"r0�br��sbs��wt �xt��u��h �u��u|u��v��x �v��v}�� �x}��~�� �~���� ���z�� ���+��$ �,��i��< �l����d ���n��t �p���� �D��.�� �0��x�qx�� ������ ���q �St�� �b�� ��W�� �X������ �",��"6 �D�������j�� �l��$���"Xl���p��4��"l�����`�-���@��p����x�" `���Ƥ����� ��� _���`�����<��M`�bP��H�����,���#b$��ŬȬ����<���l��h�{��t���v���x��R���T��ݶ�b�� ������"pb��D����P �D�����������������y��8�|���� �����|���0��\�(��x����������P �����������"`�������������^��p�`��x��4���T �� ��� ��� �b��0���4 ���M ���f ��� �S�� ��� �S�� ���"���"l���"7���N ���e ���~0��� �S�� ���0�����0��b# This file originally from pip: # https://github.com/pypa/pip/blob/8f4f15a5a95d7d5b511ceaee9ed261176c181970/src/6� _internal/utils/glibc.py w� __future__ import absolute_�" �4 re ��warnings def Q�_version_string(): "Returns%� %� %�, or None if not using+�!."@�|�qctypes �"# �`.CDLL(?�$) �ly calls dlopen(NULL), and as the�I�manpage says, "Ifname is =�,5�n�! r�ed handl"�0for�N�in program".way we can let-� linker do�work to figure outN�`which @ ourX�@cess�Aactu8/.0�0pro�_�~space ='*�2try�gnu_get_g�$ =m�N�.)�O�except AttributeErrora� # Symbol doesn't exist ->�prefore,!1areAd to]���#�8_Call �", G4�3s az like "2.5g<�@.reswJc_char_p��/ =}�!())� # py2 / py3 compatibilitisinstance(Z�,�K� �$ =N��.decode("ascii")�(� # Separatedo~Thave_�1le_ easier unit testingRcheck(�: �required_major, minimum_minor�p# Parse���X� against E� es��#ZWe use a regexp 4�`ead ofS�.split beca&�pwe wantndiscard anyJ�random junk that mightae afte��$orPP -- t+�chappenO�� atched/forked5�s�^ (e.g. Linaro's version of 4glibc # uses version strings like "2.20-2014.11"). See gh-3588.>�m = re.match(r"(?P<major>[0-9]+)\.�&in�$",m�Q_str)G�if not m:���@warn�. �("Expected �A� with 2 components ~� .mq�%,"N��R��" got: %s" %K���, RuntimeW}���8�return FalseU��(int(m.group("|�P")) =qquired_�A and8��M��� 8����8�>= minimum_�) def have_�qatible_8(rec�,;�K��" ==_�Bing(�(if  is NoneE���� Rcheck�Y�(a�/, � # platform.�F� regularly x�sletely nonsensical�$ #�s. E.g. on my4�Uuter,b� says: # # ~$ python2.7 -c 'import-�@; pr �A())'B�!('', '2.7')�W�?3.5W�09W� # But the truth i�cldd --v���(Debian GLIBC 2.22-11) �@Thisunfortunate, because it means thax�linehaul dataa�z*� was generated by pip 8.1.2 earlierw�`seless� # misleading. Solution: instead of using, our code{�actually # works.;���S"()"""Try to determin?�eIG Rs a tuple�E(lib�) which default\�TemptyLM�bin casl�lookup fails.�"""O�� .�r("", "">els!("J�"",�#) $re �functools�`distut�&co'��_error.��0exton from setupZ�.�rn.six.moves �3map-�t.monkey�pget_unp#ed2_3m True if C%�s can beT�*edc$�_impl = '3�%.D�build_ext'b�2tryn�:!# �(D�)g� 8�7��.�_e�Xort__1�,D�ulist=['5�E']). �B�2��except Exception:  �Ppass �"return False # for compatibility have_pyrex = _�#cython _Extension = get_unpatched(distutils.core.)�) class �(G�!):�5"""� that uses '.c' files in place of '.pyx�A""" C�def __init__(self, name, sources, *arg�3*kww��R# The� is needed as calls may� positional�L� arguments. py_limited_api7� be set only via keyword.A���.9�= kw.pop("�"",)>�W. >convert_pyx_6_to_langR6�w����"Re3�` with $ e.Ds to �the target��h�Fuage7� . This mechanism allows *�bauthor^�UupplyM�Cpre-�%ed{�0but�pprefer ����)if(��#G�build has C+�w�! is��c1ile-�t���J����1 = � �Uor ''#�A`_ext =-app' if.lower() == 'c++' else%�?�sub = functools.partial(re.sub,h3$',�h�m�9 = list(map(:��)Library(L"""Just like a regular1 , �dt2a lI� instead"""A PEP 517 interf/�xAetup� Previously, when a`r or amand line 1�b (let'�a "frontend") +Sto ma�Pquestst��pt �certain ac8,e example, generating �G���@alla0� require_,I�q would �! "�.py egg_info"��b_wheel" onO�5com�4. M defines a different method�k��z��>s. Rather than��%��" direct�� sh�:b1. Set�!ur{�5�1oryZ#heF����ad up��d 2. ImporH��OPodule$o a safe p��erpreter (on$�b whichr� can poten1 lys� global variab�Zrash hard)^3. Call \�!of�Rions hd{@. W Beach�z do0� However, here is a "casual" definition of the func�s (this "�@should not be relied on for bug reports or API stability): - `build_wheel`: �1 a �2 in��older and retur�basenameG�get_requires_for_J�_H�a`: getK�e`setup*�Q` to *�F�prepare_metadataJ� vinstallL�C�N�u_sdist`�!n ��0H�� Again, !isa7mal! Just a "taste"�module. """ im4 os �%sy �tokenize�Thutil�contextlibF�EtoolC��-�5�s class SRmentsError(BaseExcep`): �0 ____(self, specifiers$��(���.�' ='�x�Distribu`�(�.�.�Y�def fetchpOeggs� _raise��)1 @ amethod�@O. �qmanager���patch(cl�����`Replac6�� �|�R with@�d��6�1forN@dura*43is �.*�z�gorig =q�IcoreU7�� $�e = cls*�2try����Byiel-��kfinall#�^� �� a _run_ _script='�C.py' # Note that we can reuse our` directory between cal�P# Cor�0nesEmes firsten optimizl3lat__file__�0� __�'__main__'�0f =Tattr(, 'open', �$)(Z�)2�code = f.read().rCp('\\r\\6�'�-�f.close(�exec(compile(H�$, \�0, '�'), locals())xfix_config(��Dting ��/�(��q#{}��I��.setdefault('--global-co�"[]�j i���ou�_��R�B = [n1A', '"']"sys.argv �[:1] + ['egg_info'�\[���ngs["--global-option"] try: �� �with Distribu%�.patch()#��'�_run_setup()<�except S�RequirementsError as eA�r � += e.specifiers N�xreturn )� def _get_immediate_subdirectories(a_dir�D�[name for �in os.listdir0�s����� if!�ppath.is$� osbh.join1�,K�3))]���� s_for_build_wheel(config,tings=None� � = _fix_� 9�g�f�y�0�1�\sdist4��^prepare_metadata>�2y, Rsys.argv = �[:1] + ['�_info', '--egg-base', e� )H��lz?y =D��-�while True:]�� �E�as = [f*f $�i��A� �if f.ends0('.;�-��,�pif len(� s) == 0 and \�.��+�hnI��S�1�N�(��% =fX ~�4��,3� ��J)[0]!continueU��oassert1�Rbreak3�# PEP 517s that the e  be placed1theU�#� . To comply, we MUST copy\�Q�!to�ArootL�?if ��/ !shutil.move(G�� �� Y��,n�s_,>�9s�frmtreet+, ignore_e# s=%)w��{�l[�Q� ����, �0absJ("�&b�7�' �["--globa  if wheel_directory != 'dist': �shutil.rmtree(wheel_di1�)'�Acopy)�G�-, 1�2�� s = [f for f in os.listdirg��if f.endswith('.whl')] [�assert lenF�qs) == 1�breturn�s[0] def build_s�(��, config_settings=None) � = _fix_�(�9�+ _� =�path.abs� �7�ys.argv = s �[:1] + ['S�' �\��# |�["--global-option"]+�@_run�2up(h�1if O� 1�I���:  1��� ��g��k�, otar.gzI����import os �dsocket�Uatexi�$re�functools from setup�.extern.six.moves Y�urllib, http_client, map, filterJ�pkg_resourc<�`ResoluError, Extrac�R tryn�ssl except I�9�#�`ssl =  __all__'VerifyingHTTPSHandler', 'find_ca_bu���is_available�Pcert_2s',M��opener_for' ] !� = """ /etc/pki/tls/�Rs/ca-b�B.crt!�6ssl��&�ificates#�usr/share/)�F��#�Slocal)��E�k�BrootF���@� .pem /System/Library/OpenSSL�2ert'�\� 3-ns�`���e�""".strip().split()2 = B.request.�o�QConne( =l/��Attribute!I�1 = �:��xbject �sl is not^a and o+��Ain (L�[�,Z�') �X�R�S Cert��=tch_hostname� �>V�@backs.ssl_maG� o�bB� X�@��X� q����� O��1 if\ >�:"class CertificateError(ValueError): �pass if not match_hostname: '�def _dns�_"�T(dn, &�, max_wildcards=1^�@"""MS�ing accord � to RFC 6125, section 6.4.3q���http://tools.ietf.org/html/rfc;�#:�-:��5���1"""�� �pats = []��&dn�)�return False� # Ported from python3-syntax@�# leftmost, *remainder = dn.split(r'.')�1par��M�1 = *�&[0�^��61:]�% =�.count('*�6if +�>��"# Issue #17980: avoid denials of service by refusEmore�F�than onex� per fragment. A surveyT�establishedG�policy among SSL impleC�aDs showed it to be aA�reasonable choice.!�raise Certificat.($���"too many�fs in c9�P DNS 1�: " + repr(dn)) # speed up common case w/oU�y� dn.lower() ==�z�~, subitem 1# The client SHOULD NOT attempi a presen1@idenD erUwhich�G# th characterprises a label other =�4��-i��%if��:'*'!# When '*' i^�y�pitself,4��@non-�y dotless��# ��o.append('[^.]+u'el�0.st�with('xn--') or� �3�* �# whereis embedded �in an A-rL�U�f'�ainternalized doSM �ore.escape(%�$)rLelse@O[Qwise,n string, e.g. www*�~� .replace(r'\*', **'1addE�<s, ignore f�"fo?�_>�:der�pats.append(re.escape(frag)) �pat = re.compile(r'\A' + r'\.'.join(pats)�0Z',-�IGNORECASE)J� return pat.match(hostnamen�Adef �_�t(cert, �%):L�"""Verify that *)� * (in decoded format as x�Ued by@�SSLSocket.getpeerA�2())�es the *y�*. RFC 2818 and �E6125P�rules are followed, but IP address�not accept�e�u#CertificateError is raised on failure. On success,�function�ss nothing.�5""" � if � a�r�R Valu�("empty or no0��"0dnses = []c�Qsan =2��p('subjectAltName', ()C�for key, vz�z in san� if"� == 'DNS'���Cif _�_T(M�L�0��,��K�s.appendM��B&� �c# The ��only checked when re�`no dNSV entr��#  : ��80sub&�� jc ��T��4� l.ub'��+�P# XXXording to�~most spec Common � ��K���# must be used���cO��N��0�"@��Dlen(&�Z) > 1KQ $("hF %r w�"doesn't either of %s-�%% WS, ', map(repr, �)sZelif �/==�B/%r� �9[0]�/seL�no appropriate 8�|�" fields weund") class ringHTTPSHandler( �"""Simple v�/h/�:;Pauth,X�eimeouts, etc.5�__init__(self, ca_buz�l��&��.��j%�F��#��.S�_(self)  def https_open(self, req): �preturn �2.do(���$�lambda host, **kw: VerifyingHTTPSConn(�F�ca_bundle/�)r�S�) classF�P�cection�"""Simple vy�R conn%�: no auth, sub[�es, timeouts, etc.""" ��__init__� �" �.?��)b��4 5 = ^�����;�ock = socket.create_,�Eion(d��-�=�.�t�port), getattr� , 'source_address', None�)��Q�@# HaC the� if a (proxy) tunnel is present�hif hasw�_-�l') and��_��t����j��D�(���#://bugs.python.org/issue7776: P�q>=3.4.1�y>=2.7.7e�# change�� to mean q server S when#king isO� be�used. Adapt, since we are interested id�pdestina L��1for�QmatchLname() comparison.8�aactual*��WCelf.F�,�Jelse:����<Ssl, 'pdefaultWtext'�0ctx�$sl 0�(cafile=H �+ctx.wrap_�0et(�,��"=�K��`# This�jL0 < +97e< 3.4?7���9ssl� )�-��ock, cert_reqs=1�CERT_REQUIRED,<� �s K��:try �.getpeer\�O(), xcept CertificateErrorb�S�shutdownuet.SHUT_RDWR���w�k.closeraise �uer_for(=�"""Get a url,� () replacement that usesE H��0ion�� urllib.request.build&er| 3� or find_�"() ).� # from jaraco.functools�@nce(�*@ ��Ls���$�per(*args, **kwargs):  �if not hasattr(func, 'always_returns'): /���%�.#�0 = �(*args, **kw �)8�K�%� ;�#��wrapper @once def get_win_certfile(�6try�import win'�QstoreX�except I�VError4�t�QNone -�class CertFh�M�.�}����__init__(self�� �dsuper(9�!, #�.2��-��atexit.registerP�r.close)��%��r��� o� �.����D� �*+OS&�F���Bpass��f& =-M��A.add_('CA'�CROOT�C�aname find_ca_bundA"""R an existing CA '� path, or 1"""aextantN_!�s ilt0os.�0.ish , �$���(H���or next(o�,�Q��D�1or �ifi_where(�)� � �"__@__('�hifi').T�(, Resolution, Extrac�g# -*- coding: utf-8� __all__ = ['DistribV�B'] �4 re �$os �uwarning�enumber�distutils.log4��c^��.md+����itertools from colle�$s M�efaultdict$��?��eG)����%Op9%, �Platformb�RSetup�, )h��P��rfc822_escape)�tversion,�rStrictV� -�si��e.exter-�?six"� packaging(�.six.moveamap, fT�^false�edepend9�cRequir���windows_sup �dmonkey.��unpatched,�dconfig,�bparse_�0ura+pkg_resource/.py36compatA��_N�_K8s �.d.specifiers')5�'4 �A(cls warnings.warn("Do not call this function", Depreca�Warning) return get_unpatched(cls) def� metadata_version(dist_md):C�3if �.long_descripk�_content_type or)��provides_extrasI��sStrictVp�R'2.1'�Telif �.maintainer is�0Noni���P� s�,�o_email2�tgetattrf�, 'python_requires', h�)C� �t�T �?1.2� i��obsoletes or��classifier#��download_url��i_�� 0'# Based on PS 3.5 !:write_pkg_file(self, ��@"""W#� the PKG-INFO format oQ to a2� object.�1"""�l�/ =�p�!) *��u�.�3('M-\: %s\n' %�g3�FName'��X�./nname()/� Y�2��5�Summaryg��N9�Home-pag�0url3�$if�? < �oAuthor���0act`����8�-i>�D�Felse�oAal_fields = (��j���"('�Q', 'a�?'),"��(�v�.�MM�,�/*� \�0�`���Afor � , dK in ��0��%�B_val��J� �}�'���if six.PY2C����.�G�r_encode](���5�!if�8�_^�&%s(��F�)a�0�oLicensl���Helf.�S�DF-URL��=�>�0pro`�"�*��s.items(�o�P>�n�,RC�� � = rfc822_escapW#�C�r�Dbption: %s\n'! % long_desc) keywords = ','.join(self.get_�1())-�%if0�:��B�file.write('KN�: %s\n' %0�o�if version >= StrictV�w('1.2')Y��or platform in ��'s(.� �P:��7��Felsel�\�_�`_list(�4, 'F�/',��>�Classifier@�c�sYI# PEP 314�P�RequiresN�r��K��<�jProvid<�p�<� zObsolet=�o��>�� # Setuptools specific for�!45&�if hasattri, 'python_� ]�!-P0�� E�X4566{�,�ription_content_typ�?��_��S'Desc;�"-C;� -T;� /�s�/�"ifmv_extras�S�+����' -ET�DO�) sequence = tuple,  def check_importable(dist, s, value6try�ep = pkg_resources.EntryPoint.parse('x=' +D�assert not ep.�s�except (vError, V� �Attribute�H�1ion����raise Distutils$�(g��#���"%r must be � 'module:�s' string (got %r)"C�0% ('�'��t�[�_D�]"""Verify that4T is a�� or None""� m�# '2 !=L��bhas3 of�sS G ?nsp >namespace packages are $id<5ns_�$G7��0nsp�)!if�D.hass_for(nsp� "Distr"ibution contains no modules or packages for " + �"namespace,� %r" % nsp-�)�parent, sep, child =/�p.rparti�F('.'1�2if 4�D and �not in ns_�:b���distutils.log.warn( ��$�"WARNING: %r is declared as a��P, but�I��>� not: please correct this�setup.py",�,� H�) def check_extras(�, attr, value)��"""Verify that .�_require mapping�valid"""k�2try?��� list(itertools.starmap(_�t�.items())except (TypeError, V� �@AttrV���q�traise DS4� *"'��' must be a dicary whosebs are ��i���q"string��Ts of ��#  project/vers L�Xment specifiers.&�=(�c, reqs�Jmarker =.:3if %��kg_resources.in�_!�(�e���k""I;� environ�@�:t��9)(pz�Tparsei�=�!s(�assert_bool��True, False, 0,11if T�-�B) !=tmpl = "{-7!r}6�9�2ean2�q (got {H�F!r})5�\�.format(_�=�=J�)�>1tinstall\sa� idD�p ��(��Qif is}�Ance(�0, (j�'t)W�/�&("Unorde6Btype�allowed"K5 )qeK  ��-���"1; {�}O���U�4K�=� 4Y8&J�&packaging.specifiers.Spec �Set(value) except packaging.s)�s.Invalid;� as error:;��?�tmpl = (��� "{attr!r} must be a string ")�pcontain�k� version �1; {t�};���j�raise DistutilsSetupE�(�.format(�=�,�=Q�)) def check_entry_points(dist, 3�-��"""Verify that 4� map is parseable""�2try=����pkg_resources.Et�Ps�.7�O_map�V�N��e�test_suite�if not isinstance�b, six._types)�"r� "�{oe_data� y�n�a dictionary ofe names to glob lists/if���F��for k, v in l�w.items(#��4 k, '��+�Ybreak �#���fiter(v��AType���� ]�Jelse$�areturn~�3��N��G + "�e@mappje��J�"wildcard patterns�v�0pkg� re.match(r'\w+(\.\w+)*', :� �4.log.warn�WARNING: %ra i��.f; please use onlyI�.-separate=�s�sE.py"��=��-_@ribu = get_unp�!ed5�Xcore.,��=�Qclass%B�(#�_{config_files, q�;8"""8� with support `featur?��Vs, an�� �AThisPn enhkdFof '� � �'xF� effectively adds the follow`new op/al keyword argument'xB()':�! '�ll_requires' --or sequencesyt�qproject����!at��� g�c when }�0ed,��N�used by 'DF� ()'. They will be instalSled �2automatically when the package is installed. If you wish to use H�2�s that are not available in PyPI, or want@�@giveQ�rJ�Vrs an� lternate download location,3� can add a 'find_links' op#��]�&th�s'[easy_�a]' sec(�o�r project's 'setup.cfg' file, and�"�tools will s��6listed web pages for �psatisfyN��requirements. �'extras_�' -- a di�ary mapping names of�Bal ";�"@addi�3al V��r�2(s)� usO�bthose B� incurs. For example,� this::�8��! =� (reST = ["docutils>=0.3", "�vedit"])I�indicateH�Vdistribu�provide an��capability "edp�", but itI�`nly be~Td if ��J��B ��Duser%sr  VI�REasyIM�a�ests one0youj�,# correspondingG�bi��eneededXfeatures' **deprek?d**akh%to�&".FU�'� obLCs. �s<Qa por!of� 7�Ibincluded4#ex �0bas�nrs, inter-� dependencies�ocurrent system. Em�P��Womitt<`from a�3 command����RPsourcPd bin�Fs, sT�Z�0cremultiple 2� u��xSsame `�Utree.v`shouldvalid Python identifiers, except 0theayO�bcontai*'-' (minus) sign������ �L�1via,�e '--with-X' �pout-X',re 'X' isP�� ��@� �. Whether a �� by defaultP�w6���pallowedN�1rol�,�determinedm���a. See '�b' clas68mor0for%ontest_suite�a�  a � ���run for the 'test' command. �If the user runs 'python setup.py test',&� package will be installed,P�1and+�Qnamed<�V suit4�run. The format is1�usame asI�Pwoulde��used on a 'unit�5.py�Q lineR�L�4, iS�K�pdotted � of an object to import �@call�generate a�". O�'_data' -- a dictionary mapping &�t�sU�Plists~�@file��qor glob'�0use.�Pfind b� /�s contained in.�B�df�s�1hasE��2�%s l����ed under '""' (Rempty� string)3ose�searched��Tevery�,�@addiP�cto anyH�1for�specific;�q. Data�s found usUUtheseM��/:� along withe�����nJ�@loca�" a-�. Note thatare allowo referenc��\��"enCnon-O� subdirectories,n��`as youH '/'a path separator. (G+�putomatiy#0ver%to�@platg-e`ths atbtime.)4In �k new keywordsis class also Zs!al*�bmethod�manipulat0 diQ bul'�(. For exampleh�e 'include()'��4'ex� l�@ can$pthought`as in-place�subtractK��!at#�or removes, modulextensionPnd soAfromN���0ey !bypfeature`systemf`config�"thDK�Y�`� d�#d R�2"""_DISTUTILS_UNSUPPORTED_METADATA = {���'_descrip__type': None@'pro8q_urls': �vides_extra!�2set �}�0pat3_�! =_��0def`ch_mis_pkg_info(self, attrs):�# Fake up a reEment4=Inm ll(5me � # PKG-INFO, but which miQpnot yetdpbuilt i0 iswa fresh�checkout#�0if M���''�"in��0vern ����ereturnZ�`key = 0resources.safe_name(str(attrs['name'])).lower() � dist = pkg_resources.working_set.by_key.get(key9�1if <��is not None and ��� .has_metadata('PKG-INFO'):|���+�_version�Dsafe�(str(attrs['0��� N�self._patched_\�! =� '�def __init__(,�!, Q�=��have_package_�` = has,�7�"�"� A� ��{�.B�Q = {}���h�2s =�8 or�if 'features' in%�'require_� ~�F?�.warn_deprecated� O�U = []�#�j� ���|P_file�8�# Filter-out setuptools' specific options.k�psrc_rood.pop("�!",�P_miss�BinfoD +��dependency_link�g�'�[', []B��_5 @� � >�`for ep��iter_entry_points('Ubutils.R�keywordsUAvars))�default(ep. +_Distribuw.{�Pk: v �@k, v�$Witems?�+�Aif k 1in _DISTUTILS_UNSUPPORTED_METADATAh�"})�E�-Sl-in  Qb field{supported by#R�# Note some7�@may @ bee�t;�aother  (e.g. pbr# above; they are taken preferrentially to() arguments��=#, �H".g �Q�H�$.__dict__ 9��`#ifn<�%��)�value = j�[� �#��Ubreak���NelseW�S�0() R 3� I�0setq.�,�!, R�>if isinstance5�.A, numbers.N���0# S5people appa�Sake "E�D�"; l:;�L����S/tr� �?�} btry:  � ver = packaging.version.V�(self.metadata� ) ;��normalized_B� = str(ver.�?if X�N != J�:n��z�warnings. �(#��'�#"N�ing '%s' to�O" % 7��;��,j��3��0��B��� - �except (sInvalid, TypeError)n�aj T"The specified (%r) is an iq�%�, this "�����"may not work as expected with newerI�Os ofG�'setuptools, pip, and PyPI. Please see PEP 440 for moreN�details.9 �0�A_fin$_requires() 5�Odef ���6�&""/USet `epythonW�`�fix environment markersq��fin `install:�t`extras�%`.4��if getattr%;, '�w', None��w���Q 3��5�q �&�>�u� �t��(�2 inz��k.keys(��o�r# Sincegets called multiple times at points wher0�e4�H��� # f� have become 'converted' �a, ensuB�at we are onlyO��truly add?��2��a�0n'tPn bef������4�" ={�.split(':')[0]o�"if'��J� rovides_a�as.add( �2�_�)�q���(���^�k_move_*�_ NZ� �P�C `��5 �v0the5m,!`"�": ["barbazquux; {�|}"]` to/�:� 8�/"]y�`�2�/<s =� or {} self._tmp_extras_require = defaultdict(list) �for section, v in specB��?�s.items():1��8�# Do not strip emptyF�)s.+�Oself�[u�].���r�pkg_resources.parse���{ments(v���suffix = u��f_for(r��)���$�.�2 + A�].appendE��@staticmethod�Rdef _.�o�'eq�1"""&��v�cFor a ��, return the ''�E forB�HthatA�oh�U�0':'�tr(req.marker) ifA�� else '' b��move_installv_B� s(=�@Move_��`N�1s` �are using environ��-n�* ``�/�# divideK q� into two sets, simple ones stillG�handled by G�and more coA�xB�2�D�:by �.a���e2is_��a�O�$�r�eC����?�s = getattr0, '�s', None) or ( �'�B��(x y�)K����yfilter(�,No�7�G�2 = 8�_false=��.��1 = �tmap(strb�&))Cl� `�R�[XG)'���@� ��+�(�`(k, [s) �>Pclean�V, v)]<�;���k.�t��_]�;rGiven a RW���. �+*it����! =�9�2req��config_file,6penames=, ignore_op_errors=FUf@"""PX"s R�0ura/�M�s from various levels���Kload:�0_Di' bu^�r������)��self.command_options, �ignore_o,�_errors=�)G� self._finalize_requires() #�def parse_command_line(6�!):"��� """Process features after<�Cing >� >� �Es"""B�result = _Distribu�.{�8�0if �.w������%�(�rreturn ��_+�_attrnam� , � �tConvert�"� to correspond�� N���e'� ��'with_' +!�.replace('-', '_'fetch_build_eggs$,  �Resolve pre-setup(�Lment�*�d_dists = pkg_resources.working_set.�Elve(�r /��l�( �*s)installer= � ,�_conflicting=True&�@for �! i� * ��@add(B��\l�b�B]�JZ .�bset_globalds_from�� ep �iter_entry_points('�autils.>_keywords'��S�value = get0ep.8f, None9�1�2if 4�ais not"� �&�3ep.7(( ]�;�lload()�w�0�+if�"'c�_2to3_doctests'� �# XXX may 5��set here when we ca`ly on � be�5tin��K� �I = [+��/�os.path.abs�&(p������[� W�]�Jelse�C���]0get_cache_dir36egg�4 = �join(os.curdir, '.'�!if.0� ex(O�g��Pos.mk� %���$� windows_support.hide_fileZ� 5�readme_txt+�� � s�, 'README.txt��th open(V�txt_filename, 'w') as f: �-f.write('This directory contains eggs that were downloaded 'M�\�''by setuptools to build, test, and run plug-ins.\n\n')O��@ache�3ose�o prevent� repeated�z�However, it is safe�delete t4��`return� _c�Q_dir �def fetch_�_egg(self, req)@"""F'�! aG�@ neez2forRaing"""S��|Gfromy.command.easy_install import �A�pdist = �.__class__({'script_args': ['=�6']}popts = H�.get_option_dict(6� 4�{.clear(�uupdate(���V(k, v(������2 in�z� g.itemsm��E�@if kA� n���# don't use any othergYtings��/�'find_links', 'site �index_url',8��,Mmize6�allow_hosts8�) "if�dependency�M��� +�9[:]�8if ��� R�V���[3�q][1] + v� [�*�Q = ('5"',1���G��6eggYYcmd = � , =["x"], �a�= � exclude_ js=True"�always_copy=False,�X�X�=None, editable&� dupgrad� multi_versiont�` no_re�BuserK�J�=cmd.ensure_finalized-&�'(_set_global s_k_features Add --with-X/ �`out-X ons based on�4al N���fgo = [n�negative�.s"()���Tname,V��7�f� #��(�(F��Sb��Q.vali�;���$�i#.�*alo��%�tdescr =�.�i8�(���0inc;= ' (default)�excdef = ''  �if not feature.include_by_default(): 1� �excdef, in�# = �", � 5�}new = (��Q� ('with-' + name, None, '� �sdescr +h�/),I�>outL�!ex� L��L��)^�go.extend(new�1no[�{�A] = ��self.global_options = ��Bgo +� 2��8�negative9� L�negopt = no�def _finalize_s� s(I�"""Add/remove%s and resolve dependencies between them"""k��# First, flag all#� enabled items (W�@thus�)irZ�q3for$�2 in�!s.O� l� e3is_e d({i���%if�Dor (D�!isv�:J�N��� /�"int�%����T._set�H, 1)VThen disH�7�t, so that off-by-Udon'ts�Q# get�ged as errors w]�they're required by an�L�%�T�_+�.__fromQ0Q�get_command_clas#, �"""Pluggyversion ofJ B�) ���$ifL�1cmdk� �Sretur"�[�] ep7@pkg_Aurce r_entry_points('distutils.C�&s'�  ep�:eps�3ep.(installer=tch_build_egg@"� �4 = � = ep.load(:��(��Jelse�*�_DistribuL. B�Eprin�d!I�0ep.ft� ��1�!# |p extras4theI0s w be invoked-�D���cmdclass = ep.resolve() � self.cmdclass[ep.name] = �2�return _Distribution.print_commands(N�!) 3�edef ge�R_list �: ���for ep in pkg_�urces.iter_entry_points('distutils.m�&')I��M�3if �@ notU���� -��1�# don't require extras as the g�! w%�be invoked��D���* =���kBMm_set_featurei , , status.s"""Set ,�'s inclusion,�5"""�ssetattrR�Sf�_��d�(�)j��c�A_is_d�3dedI�2�B"""R`D1 if�# i�`ded, 0�Qexclu�`'None'�xunknown�g����@quesj>o���0d '�'�P1if E�.�f) == 0�bydescr =9� s[.�!].� ipd��4�`raise 7O"�iError((��,�D�@ + "qd, but was t0 or!��^available)�I�`��Y!inT -� ��>, 1:�@, **| Add items to 1 that aredkeyword arguments��Fxample, y.(py_modules=["x"])' would add 'x' to]�E�F's '@� ' ��G e,ik\hlreadyI�6re.�Currently, this method only support7�el�� _��stuples. If you needJ��X� M�Pdding�UotherI�e�"in�or a sub^,V�1can.Dan '3_X'�,N�where 'X's�L�1 ofk�c. The=� will be called withP��C�value pass�'()'. So�foo={"bar":"baz"})'P�l�0try�p�*�Kfoo(<�, which EthenL�handle whatever specialPlogic �5ed.;��\����@k, vattrs.items():' � include = getattr(self, '_�_' + k, None);�#f $�:��^��*(v3�Nelse-��r�.p�misc(k, v) W�adef ex�_package��)R�"""Remove �s, modules, and extensions in named+�2"""q���Tpfx =�a + '.'���1if �c���� �E = [8�����pp for p� -� )�fif p !���not p.startswith(pfxd]��#y_���/��G?ext���0��.h��m��has_contents_foI& turn true if '5�' would do something� giter_distribution_�'s(��u=u�  F�6�!re�BTrue�_��,sw, valuey�"""Handle 1()''list/tuple  s �out a special h:�r����0if )isinstance(r�, sequenc|��0� raise DistutilsSetupError(M�'���"%s: setting must be a �B or �(%r)" % (c� K�:tryP=old�H�3�except Ate� E��No such !������0if �!ist�(k ?old1�� + ": this�@ canp�be changed via/"�"el� Bs�x�q, [item �"in�!f ���"in] B"� sinstance(value, sequence): � raise DistutilsSetupError('��2�""%s: setting must be a list (%r)" % (name, value)B��:try�old = getattr(self, H�3�except Attribute� E��No such disU�4ion������0if �zis None�s� elif not isinstance(old1�� + ": this�@ canp� be changed via include/ex�"�;els�new = [item for �"in2 if��r� in*]Z�"�Oq+ new) ,�Cdef � **s"""Removeo�js fromthat areMd in keyword argumentso��For example, '.� py_modules=["x"])' would r�1'x'~���L�9the�F's 'E� ' �A. E~�Spackages usesL�'�_#�()' metho5o all of v�!�'s containedJ��3s, �, and extensions,Dalso|&d. Currently,\� only supports8��L��$s ��7s or tuples. If you need to addY�f�)UotherN�Rsor a subclass,[�1canW�Ran '_P�5e_XLN�where 'X' i�Ack�c. TheP willcalled withP��R pass�()'. Soufoo={"bar":"baz"})'P�l�0try'�p��Kfoo(<�p, which �)nL�handle whatever specialPlogic �5ed.;�&""4�@k, v�" s.'s(�u a' + k,Z��;�i r��W�*(v3��-��a.,Pmisc(�{�3��%�1"M�yA3�es,)  � ) ���list(map(self.exclude_package, �As)) 3�def _parse_command_opts>��.�rser, args):1��d�# Remove --with-X/ �out-X options when processing `�M�K��`globaly�9�!= �__class__. � <�negative>� :���� First, expand any aliases]��=�5[0]�*�m�0get|�ion_dict(' �'Uwhile�$inm�R��Bsrc,�" =�3es[�~��*�=del!�� # ensure each �D can�only once!��L�import shlex��@[:1]���q.split(�f, True��I����0rgs1O�nL� = _Distribu!.wFHandJs that want to consume all remainvargument"mdZ���%���(��if getattr(c?�3, '(�_{�%s_n�w', None5�$�o�$1E�0)['''q#("� line", B��L�"if�q is noto� Q�&�return []G�S�����0cmdp��B"""RO� a '{cmd: {opt:val}}' map of�-N�k���O! names arlong, but do�!in the lead'--', and[contain dashes rathern underscores. IfJ�y doesn't takeL� an. (e.g. '--quiet'),>�P'val'q'&'.�@Notew�t��vided bysfig fil�PintenSally %d.�6"""\�fd = {}�for cmd,k�Bs in/t.items():8��|�<�aopt, (o@val)B��2��6�if src != p�.��Jinuez���Popt =�.replace('_', '-'�%��if val == 0h�_mdobjzobj(cmd1X�0neg%8�#o.copy(7� .update(hobj, 'H�o', {})H��qneg, po�~� �!if3�== opt:  ��opt = neg ���val = None'� _break"�_else:��d�'raise AssertionError("Shouldn't be able to get here") O�Qelif �?= 1n��� ?�d.setdefault(cmd, {})[opt] = valq�return d�def iter_distribu�_names(self)� """Yield all packages, modul �and extension C�H in Y�2"""w��9pfor pkg$��j�.S�W or (x��,�yy�:pkg?�|�B�"y_�sD�!� G�5extD�?extE� if isinstance(ext, tuple����, buildinfo = Y�8�-�. � 2�!ifY.endswith('�'��ame[:-6]I�Q`���`handle pplay_op ", �g_orderm�p"""If t were any non-global "disN�c-only"F�ss��$�(--help-commandthe metadata>�?�9�@) onn� 1�I�Uline,.��C�requested ~�`true; } �F�efalse.������import sys<if six.PY2p��_�s<�B�l�7 _Dj.tw�# Stdout may_StringIO (e.g.etests)��&io�Xf notQsys.sW�, io.TextIOWrapp�< Do#Rwrap }� if utf-8 is alreadyencoding. ProvideE# workaround WF#334��.I�plower()0!('t�0', �8N8VPrintin UTF-8 no matter�platform� =�'��}s%��#�0new,$�i� != 'win32' *@'\n' 6�8�`_buffepB�.�W- =X(��W+�.detach(), 'utf-8', errors, newline, �_buffering) �Etry: ���return _Distribution.handle_display_op�s(self, �f_orderY�kfinall]�sys.stdout = io.TextIOWrapper(���/�.detach(), encoding, �� class Feature�1"""i�**deprecated** -- The `,�` facility was never completely i �amentedN�or supported, `has re�q issues'�<https://github.com/pypa/setuptools//�/58>`_ and will be removed inL�@a fu�P vers �A subset of the d that canO�`excludP�f unneeded/wa�J� s are cre*` usingY��se keyword argu "s:� 'descri('\ a short, human readable (��fA, to�� �� us�n messages,#U help�.�standard�if true,� l�c is inby default if it i�Qavail�!onB� current system. Otherwisb�Fonly�p�if requested via aim� '--with-X'kv, or ifK�0anou����X�ires it. �@settis 'False'/�0 &� f�pnstalla � $�j�8Tru�/al�'��controlled from�%omY, dr�6outuWs. Itf5 E �`statusXdetermined automatic,� baCon 'Uuile', '1wheBany J� g5�_N�so a � ngls0nce�Ps nam@4��cshould alsoOthisxB. Dwsempty lis2MayU��ain 'Require' objects�&be� adD '� ���@pack! t�=�5m��] U*not*r oF *is(���is argument is ignored. This argument exists �4to support removing features that "crosscut" a distribution, such aN�PdefinC�a 'tests'M�L�c�es all the%�subpackageM�provided by otherL�s��e default for t���vn empty�list. (Note:�cnamed z�(s) or modules mus.1 in.�FbaseN� B whe$�'setup()' func& is initially called.) I��keywords -- an�� �e saved, an�sssed toM�! ��'s 'include��6�5'ex�umethods�I��0�d<�d, respectively. So,example, youN�Bcoul�# 'os=["a","b"]' to causeQs 'a'�!'b�bz ad"or}ed from� as appropriate.rAD at least one 'requires', �`move',�� @. Owise, it can't affect�!inAway.O��R also&0youA� subclass 'F `create``r own qializedM�4typomodify��C way�N��"eeC� oc1ngs�various PAhere�0morBtail�VAside1�,Y�Eonly"ati�as look��at are 'descripr9o �2al'y�2"""r@staticz�D�def warn_deprecated():��'umsg = (���"8�uwill be�0 fuT* "G�version. See https://github.com/pypa/Ttools/issues/65.I�)S���Pings. �s(msg, D�`ionWar, stacklevel=3� __*__�gself, _@�ndard=Fal�available=True,��)� [_@s=()K�d �**extras��� �b� ��( =��'�1sta� = � !��5 = � #��4 = �!�pif ising�<ce(�, (str, R`)��� /�- =/,� 3�es = [  �#r for r in require_features if isinstance(r, str) 8�5 ] �oer = [J� ?notN��E�eif er:T��f�extras['�'] = er -� �Remove� Q�r�2 = �,A�Rself.�� ���x�� |���=�Band � L�H� � aise DistutilsSetupError(����""F %s: must define %,�� ~', or "L�at least one of 'packages', 'py_modul�Jetc.A�)def include_by_default(P)��"""Should this a4 be<�@d by��=�6?""k�preturn P�.available M��Ndard�!in�j, dist�eEnsure��M�4itsments ar�!inF�ributionm��You may override�in a subclass to perform addiA�al opera �Es on9thej�`. NotW�"at\�amethodu�be called mor$�en onceN�4per�,32o s�zdempotent.��{@�!ifi|�r@Plat�J�pdescrip�e + " iz/d, bu8��2 onpq�1��� ��.1(**�%���g n �Q�*#(fM��"exOfrom3is 7� d 8� oPTe@willfQat mo- ce(donly after all%�s have been asked toI� themselves.� 2$if� �@item %�@j�_(:�validateVerify that makes sensi context��k$isbV� 4 j0befpit parsts comma6nd line. It checks to ensure that the 'remove' attribute, if any, �contains only valid package/module namesV�are present ine�Rbase L�R disj�"ion when 'setup()' is called. You may override iP�aI�qsubclas�pperform�� other required� atn�!of�ffeatur� ag�t a target�.p�E""" �for item�Rself.H:!���Rif noO�P.has_Ients_for(>�)0��4�raise DistutilsSiError([��+���"%s wantpbe able�r %s, buy"M� doesn't �1ainPas or ms under %sH�1% (pdescrip|,.�)}�) import sys �4imp �marshal fromP.vers<�rStrictV�,�Cimp � PKG_DIRECTORY, PY_COMPILED �aSOURCE �rFROZEN B�.py33compatJ�Bytecode __all__ = [�"'Rv', 'find_0��3get��Pstant�vextract�R ] M�$@"""AX1sitbuildingpinstall�a%5iondef __init__,,,cested_S,, homepage=''�y0p=None, !at �&):(#if���*�N andq����+�"���d���X�: = o� � a�C��3 �# =�(� � ����� T = '_D6__' __dict__.update(locals()t�Adel +���>��Pfull_c5"""Return #�#w/�����"ifn� ��Lo�'%s-%s' ��,M��r���.2���1_ok�#, � �CIs '�' sufficiently up-to-V?�q�0is �5�c�\_�'Cstr(w�) != "unknown"�? >=���/��Qpaths5, default=_� �4Get number of ed module, 'None', or 'default' �(Search 'paths' for module. If not found, return 'None'��L�"�the extracted version attribute,� ie�&�K�.� was specified<��`�value can�be determined withoutK�importing 9��4Thev�0 is�0mat�aaccord0�o3�I�requirement's<� format (if any), unless itW�.��5theJ�supplied.�6"""if self.0is :0��:try����f, p, i = find_�(O� �!, )K��:�Nif fP���f.close(4�a S�except I^Error]�?����sv = get�_constant�� #, ���@if v�2�h�F and�7��S�!is�1� ��,�6(v)��v�def is_prese��=Z�)[�B"""Ri@truedependency�C�4 on�1���v���:}(�@�� �Ocurr�4�Uup-to-date��" =� A�FFals_�k�C_ok( �@)  """Just like 'imp.7�q)', buts package 0ort�tparts =Wsplit('.'-awhile %���" =�f.pop(0r�ath, (suffix,Z��e, kind) = info� ��S�tz��1!if8� == PKG_DIRECTORY��&��<�����or ['__init__']��&���i@ = [ �]e��Belif� Z�Xraiseq("Can't %r in %s" % (}��Cule)����M1�, symbol$3=-1 bFind '6�a' by s&�),)" 'Y�W&ifJ�2doeOWexist5it !�Rdefin]�s�Eines~�d as a &, return the & constant. Otherwise, return 'default'.""" try: �� �f, path, (suffix, mode, kind) = find_module(�1�!s)C�except ImportError[�1# M8� doesn't exist7��z��ONone��!if�� == PY_COMPILED]��B�f.read(8) # skip magic & datei��+�code = marshal.load(f���*elp�jFROZENn�C�imp.get_frozen_objectQ�oSOURCEQ�compile(�)`, 'exec'S�*seA�# Not something we can parse; we'll have to i i&):( ifule not in sys.msq��+���? I ��C�getattr(o�[w�], symbol, ) vfinally�Fif f��Z�f.close(2�i�extract_)(c�") def .�B=-1)|�B"""Ea�E the value of '�' from '}�'�!If3�Fname&�is boundaO�!by2�pPython K�\�Bthat�G. I� c�n expression,N�7;Y�"'.�Rm��^�qased on�first assignment�&. �#mube a global, or at leaD� non-"fast" localvde block. T�"is�only 'STORE_NAME' and�GLOBAL' opKs are checked,(���@ be .��"inr@.co_1s'.(��j�#ifY�e�-�>�(� # >�!'s'�� e,'t possiblyv�'anDh��<���K�_idx = listt�).index(�&Q = 90[����7�LOAD_CONST = 100r�W3 = H�for byte_��@Byte ��;��Fop =*�.n���9arg�2arg`���0if >�&= �U�!���x���es[arg]b�g�=<�#(\� �:����s�j�d�  �4{0_up_#s(\�PQPatchSglobals to rfemove the objects not available on some platforms. XXX it'd be better to test assertions about bytecode instead.B�2"""K�!ift�Dsys.f� .startswith('java') and $� != 'cli':O���areturn�incompati�= 'extract_constant', 'get_module�=�pfor nam� I�j�del globals()[,�]:���__all__.r\(�) _update_7� from __future__ import absolute_�, unicode_literals �4 io �o�2sysX�qcollect0�defaultdict$�functools{�rpartial�6�4lib��3 %��distutils.errorJ�D� Op�E�%, �AFile�F�Qsetup� .extern.packaging.version�rLegacyV�, parseE�4six7�string_types�_metaclass__ = � def read`figura�(filepath, find_others=False, ignore_o�_�)9"""Read given conc� Z�"s G�!s %iV0 a :param str| D���: Path tod���ito getg� Z�Hbool�P: Whe��Y�psearch )j��sk�which coul/�n variousY$ceV�{�O �silentlyyo�:, values of ��be resolved (e.g. due�Aexce�`in dirKves such asl:, attr:, etc.).�1If  O�� are propagatedC�expectedwr:J��!�Ps"�s�Q@ribu8, _�]�X�` = os. �@.abs�(�)*�&� is �%���_raise�'�&�.'Cb%s doecexist.' %K���current_u2ory�getcwd()os.chdir(�0dirh�M�6try�9=�4((������E�@s = +�._�hs() ifv else [�$!in�W�� n�v.append��$� .����!leb�=� ��phandler�B�onfiguration7( �`dist, �.command_options,(�cignore�_errors=�!) 8�finally: ��p� os.chdir(current_directory2�return configura� _to_dict(handlers) def&� w�A"""RU�s0� data gathered by given e�` as a x�.�:param list[C�H�]4�#: �s'�=0usu  from parse_�(�q:rtype:w�51"""�.� = default�(�>�4for�& i�:�bj_alias =*�A.secfaprefixn��+�target_obj,��T��v�.u� .s<�D�T���getter = getattr(T�0, 's�b%s' % S�c, None��?��� if=��F�!is � b��#�_valuee�Z� T�OelseG� 4ter�a���$[oZ"][`�A] = �* �@ribu,,  {r=False)�"""Performs addiH�!al[ing oDus���$st� Oa�E�Cused<�Ws-�6&DiG�iT��&�� � !�Obool�P: Whe to silently*���"s,s�which could not be resolved (e.g. dueT�BexceO�2in ives such4pfile:, :, etc.).3�1If  O�� are propagatedC�expected8��yI��2 = O�E )i�a�.Emetas�@MetaHt� .3��&�!.package+��O� �r �,s class�N2"""�s4��� supplied  s.v 0! =��nE <E� /�sj4thi�r1Mus}bprovid�DheirM�e${}{� �X�0ForQpatibility with vTarious packages. E.g.: d2to1 and pbr. Note: `-` in keys is replaced with `_` by config parser. >�A""" � def __init__(self, target_obj, options, ignore_��_errors=False):I���1sec/�R = {}`��_prefix = h�.-��D�Dfor �Uname,�|�s� �w.items(��o�eif not7��E�.startswith(]�� <��@�continue���7��O���_�.w [�, '').strip('.')�O�(s[X�]Y���5/ =o�9�' = %��s�s!�t�$�"[]�@property-��RlsQb"""Metadata  >B to 0�A funV mapping.�.��PraiseImplementedE(w��#���'%s must provide .]�s��2' %__class__._2__)���P__set�*�h, valupunknown]Vuple( z o���# Translate aliaqto real&�*��1lf.1�wes.get(����B�current_� = getattr(� :�#, �C�:if F�$is&��l�2Key�N� C� # Already inhabited. Ski# freturnVCskip1 = 0�C� C#if �:try���YU�(���#�except E�>ionE� �ETrue��A���?lf.U��6�$7if k� 3� P_etter3p'set_%s_i, NoneHsF�!is� r�s M����MelseB�=teruz���s.append0@amethods_list(cls�parator=','Represents.` as a B����Value is split either by separator (defaults to comma) o$�lines. �:3�m value:�Q�: List itemsg�character.:�rtype: list�5""" �if isinstance(x�,.�): # _get_parser_compound caseA���breturn��if '\n' i���4�k�" =5�a.split %()[�7els5�(){��[chunk.strip() for ��2 if�$�]D�@classmethod�Bdef _dict(cls,�)�"""Represents�` as a 3�r�-�t����e = '='$�result = {}����O��Ccls.����h�@key,J�0 = <�.partitiond�.�� if4�0 !=�%�raise DistutilsOpR�eError(�,���p'Unable+y! o2�P!toNr: %s' %�2�@�E[keyg�+�2�� Obool�1�?ean�0� -Wlower(%�in ('1', 'true�Cyes'� Ofile� a Yng, allowing includ �6texqfrom nearest h�@s us&�` �:` directive+D� is sandboxed and won't reach anythL�foutsidT�ory with setup.pyb�Examples� LICENSE�/�README.rst, CHANGELOG.md, src/$�B.txtN�6�2strn�:5strh�N"e_�0ive�a�&:'_�oif not�_Us1 J�Gp.starts:(�N�Bspecxoue[lenG�]���paths = (os. �@.abs�(�����e�.<V(',') ��Z.joinkPread_x�`�;���?d��#�� �s��"�0if -._assert_local(path) or True) �and os.path.isfile( �%�!) 0�@staticmethod�def _assert_local(>�=�:!��f�tif not � .startswith(os.getcwd())1��5� raise DistutilsOptionError(Y��(��� '`\�:` directive canu�access %s' %�� Pread_Q���� io.open � , encoding='utf-8') as f�eturn f.a�(�\classRparse_attr(cls, value, package_dir=None3"""Represents0���a module L�bibute.�7Examples��*�:k�.� p���m^�&�'�:param str�`�p:rtype:�.�5""" ��]���0= '�%:'!�KH�'�9���ry5���3� s_" =�.replace(�N�, '').strip().split('.'/�aname =hV�D.pop��+_(�'.'.joinl�1�Q� +��or '__init__'�dparent�U9>��'if�d[0] in�� -��1�# A custom @was specified for thezwe want to import��K���K���[ZM[0]]9�pH# =�A�#.rV/', 1S�h���qif len(:�^) > 1��'� Q��^�nrts[0]i��F�!= t�.[1�Oelse� A�( elif ''�10Nory all rootss���$7[''+$sytnA!(0PS:try# =Q_�(�b=���` = getR)�,/��kfinallq��4 = �F[1:]c@ gerser_compound* s�9sAser func �RrDlist Parses a #value applying given methods one after another. �:param parse_1�:��rtype: callable�5""" �2def@�(�)?��d�Z�Ad = �y���3for�2 inD���)���I��(�)R�SreturK�d���b@classK����_T�_section_to_dict(cls, � op�"s,�s3�gr=None�@"""PSs8� 8� into a Y�gionaryO\�AallySies a�Cr tox�6��R�n�_n�%�F��'��M��zU = {}�� �or (lambdat�:�);��qkey, (_Q) jw.items(]��u�\[key]r��b�/��N](selfp�configuraT filerT�U(name?ue) 6try�����[T� ������except KeyErrorA�pass # Keep silent �Sa new1 ma ea[Sytimee]LP from&�&ore relatedssl��� OD� e3lf.&�sct��U�_postfix = '' �$if�_h�:/[T�.] variant9�]�i_%s' %S� [�* = getattr(d��,�b# Dots �s are tranlsfdunderscores.J�)('I� 6).replace('.', '__')�> �]e�r�0is /��raise DistutilsM�'UnsupporTdistribu: [%s.%s]K��O��mRv_prefixz�b)(��Qs) ! C|MetadataHandler(ConfigHandler): section_prefix = 'metadata'!�aliases = {1��5�'home_page': 'url',�psummary�pdescripa�"�classifier%��s%�platform#� �!�}�strict_mode = False� """We need to keep it loose,� be partially compatible withA�`pbr` and `d2to1` packages which also u`/`K.�2""" �def __init__(self, target_obj, os, ignore_�_errors=�]�}��_dir=None):���super(ConfigMH , �%).��I��M���)J��v�.�$ =Q��'@property6��5qparsers4�4"""� item name0�A fun mapping.�$�q_list = &._�z��*��0filX�&��� &�<dicL�����M�greturn>��':!se� 'keywords'$�provide$� orequir$� obsolet%� :@�1 r_LQound(�_.,�)�`licensD0�_'BW� '�_long_,�version'�|�� �project_urla�(��%K�h, valu@"""P3s `)�`+�?��b:param�:rtype: streW� �6(�7�4if .�,!=i����=(�.u&p(�&�@# Be�� Tabout.�s loaded from � because it's easy to# accident`includawlinesother uninten`� co �tI�if isinstance(�), LegacyV _����raise DistutilsOE#('6� �%s does notT!lyP PEP 440: %s' % (��i���,6 #�)oR�� attr(value, self.package_dir) �if callable(version):��%��3 = �(?�not isinstancE�, string_typesS�if hasattrt�, '__iter__'-� �'.'.join(map(str,�)))�Jelse� H�T%s' %=�freturn� class ConfigOptionsHandler(��"):E�0sec%�_prefix = 'o6�' �@property�def parsers(self� """Metadata item name to0�A funj� mapping."""T���T�_list = Y�&._�&��_semicolon =a�Atial�8��, separator=';'q[�Kbooln��� n�<dic�����{8���'zip_safe':�0se_[�,$�use_2to3$� include_?ata0� (�%ir'���{�u_fixers+��+�"ex�3�qconvert�_doctestd� _scrip#� eager_resourceN� �dependency_link,� �Espacb.� 6ll_requir� B_setup4�34� g���B� �entry_poinx2�Kfile.�py_modul�&�}� x�z, value/PI4s `*�"` {,�.R��N:m�% :r : YU@find?� ve��:�Y�0if �.startswith((�:���5�2��(F�lf# Read arguments from a dedicated .��dkwargs*�0s__+�(9����)�ts.get('c..�g', {})��tools import ,�i�� �1(**��[�� � ����_options): % """Parses `packages.find` configuration file sec �0. ;���To be used in3�1jun$� with _p\�_Z�'();�:param dictY�0_op`�%s:`�5""" �~�_data = self.a��0to_P�(4����]�,:�Vlist)�valid_keys = ['where', 'includ �"ex �]6��1`_kwarg7��[(k, v) for ��,���.items() if k��gand v]��7 = u�S.get(�)�2if ,�is not NoneZ�C��2] =6�[0] # cast % to single val�Pretur #nd�Bdef �entry_points(�-)�8�\�dV �I�V����(['�'Zg�! D��/(broot =dK)*'G�"����!['���N���3delO�G['*')->��__(8�(Ej����(�3�U* � @�Kr�  #tras_require :� E!CAtial�����gtor=';\�8H['ex� E+�) MZ����������������@�������� .���� !L!This program cannot be run in DOS mode. $Y�YSj29�Q:9�9F29}929`99�19�19m�929RichD�W��PE��L�Q��  �����N�%�������"�@ �B����b�@���A��)��8��=���!����,��(� �'0��A�!��� �.text���]����*� ��`.rdata��` �T"���"��R@��@.'�0�+P�� ��D@�� ��-QD$P@uSUV+WD-jPs ��33ۉD$�"p~W L$ <\uG <"u~Wj\V<�� 3\F3T.�CF;|Å~+�V+�!D$_"F�^][YÁ ��A�3ĉ$��V$��W�*τtd$�A</uA\u$ ��P$��QT$RD$PW � |$����|$ \���9�1Q9�4�L$QV^ ��D$ :+€| \D u H8\t�T$ ;r ���Quj�W�L� $��R ��jh���� �$,��PV �4(&�A��$�aWV�$��_^3 ��@$�؃SUVW|$Ǿ�PjPz�1l$(]�8P\$0 tOGQ�uGL$tgRm�t|$�tLD$'�C<"uu39VpD$�bptS@ A� 3ۀ|$�tL$F �At(���L$(,� T$�E�E�F4t7R Q��dGGP� u?�6D$_^][_^] �@|$�u� A�t j�P�@����̃X3jDPD$ �D$D$D$PD$ 50f� jh0@�D$D���@�D$\L$ARj���Pj� @�uh@���@PR�3XËT$L$ jR �0Z�L$$PQF�h@�븋$8�SUVW|$ǍPI�@u\$+¹���;ٍp~-$����D$x�%@u+A;ˍt|ދ|$jV(��Wh@�U{ ��ǃPd�1+¾`� ދ~:L$R/h@�PI2�L$$ PI�+F;||_^][�%��A�3ĉ$��$ ��h���L$Qj�D$@�D$�DT$;vI�8.t ��HL$;w�3�H0H1(@� ,@�f0 �8H 2@�VfPT$j�RH ��u4D$Ph@�>��@P�� F^�3! ���"W�$ ��QV虫��V,��訊��$ �H@;st t uj=�h@�R��T t�at2��  �$�� �v�$$��$(YDQ$"��R0D$ D$$PV$|$ u Vh@����S\$ U$,��+D$@jP'Wt$C2 ;~L$ R# �@G�1|y�! �7��2~mPRU�5�|惼$4���][tED$t$ � Vh@� n��0 _9�^%sL$T$D$ QRPP% $�_^3?4��,L$j�PQ j h@���3u3];;u ;������V�0����39u ,�8tԉ]S��YuC @uwS*��Yttȃ *A�A�A$u)+�+��)�)�@$t�)�M9uu#SL ��EPVu S��ESW �E E��uL�ø�A�á;A�Vj^u���;}ƣ��] ��YY+A�ujV5�)z�jX^3ҹX�00�  i|j^3ҹA�W�#";tu1 BpA�|_3^#��=0 A��tp!��5l� ׏�ËUVu��;r"`A�w+uQ$��N ���Y V@�^]A�E}P$��E H0�]ËE P3�2��Q;r=q�` +I�r#��Y]<�D@�<�ME }4��h/�Qe�VEPu �� u9Eta��t X��M^ ̋T$ L$ti3D$uar=*a0e%r1كt +шu�ʃtt (�(�D$_ËD$�L$ W~Sًt$|$u ���'L�t+t/*�uuat'�t7uD$[^_Y�$tE�b����"uE�t�`u[^O _Ét~Ѓ3‹ �t܄t,t���t ��uĉ��� �<3҉3t 3uwD$[^_ËUuuuu ju %��] �QQS3VW]9]t}M ;u9]uq9]tj9]�0u`�`tY9]�0 uO�, tH9]$u>9](u>u3@8tHF;w>:u5;t}���jujQ%&�pFu>�E������;tP�:]8tUP%��YtF</t <\t <.uu~F8u;t%9]t+E9Ev}Pw�au%y�} E;tE;tJ;ErE9]t8�4 vE8�2t8�9]$���+u9u(v#Vu[2$R"�P���E��+u9u wfE ;tWvl��u�B9]�� �$�(�0J�puj^S�P0\�*9]uj"YVZ`u$#�0EM�3_^[Mɸ���#QuM�#QMu �E QuPu > $]; A�ux$��m<EVF �uc52��FHlHhN; pA�t A�Hpu.��F;A�tF �@D'H�F@puHpF  @F^]� PMfE���~EPj� o4" ���MH}�tMap3=$A��uE `A�A]j�N�rYY]a S39] u��S����w�ME;tVEEEPSu EPEEB5� 5�MxE(�S`4��YYQe�S]u3���Wru{vnM EtR:QuMPt<:Qu7Pt&:Qu!Pt:Qu E9}r?@IF@I<@I2@I(n�t:u@AE9]r3_[� +CW��W$@[ @��Ӂ`��wt_m@m6�(�4��5A�q-��h1SЃ )�RhD@�N� th4@�P(@�tu+����,@�j��Yj ��V tЃ;ur^G�V�ut$�4 r$�=+A��th�28 z���YO7��h`@�hH@�衙� YuBhxY@�6��@@�$D!�pc=W�@Yth �27X� j�jj��3]jh@���j��B3C98 A�z4 A�E0 A�} ��q+A��,��Y}؅tx5� +�u܉}uu;rW+��9t;rJ6+��+A5U��M� + 9}u9EtT�`}؉Eb�}hp@�dp_Yhx�t�O�E���}�u(�j<��Yp3C�`tj#�b��"j� ]@j�j?�� j)�"�jjj� ËV*��V);��V:� K� �� l8� 7�6��h#@�*��$A�^ËU=D A�t\3��u1��h���'YY]jh0@���MZ��f9��@�u8<�@���@�PE��u' ��f9�@�ut�@�v39�@�Me�jV?��YujnY-��uj]Y=4��e� ��}j;Y0@�+A�=��< A�=��}j@�2:�7�0 7�@j�LtPY A� A�P5 A�5 A� E}�uP2Y.E MPQ5��YYËeE܉0�0�8EE��>��VuVS��PpYt|Ё� ;u3�Z@;u`3@ A�F ��uNSW<H A�?����u S ��YuFjFXFF ?~>^^N ��3_@[3^]!}�t'Vu F X�BtV��f f�&�f�Y^]A @ty�t$Ix  QP-��YYu  MEM >t} ��,G @SVt2�u,E+M}C>u��8*uϰ?dQ�}�^[]�x��A�3ʼnES] 3W}u� �!������ #u5M������3P�0L�t `p ��F @u^V@ ��YA�ttȃ *A�A$ut(�ȃ&�@$g3;fPغ�!� ��C!�@� ��, <XwX@�333x@�jY; ��$2@�:@u�;SMeMv ��ƒ tJt6t%HHtW ��0�5K �5? �q3 ��$�e���$�� ��*u,p;�D^�0�p�� �k ʍDЉ�p���2W�&W���1W�� �1Q�� �Q���!{F�ItUhtDltwc�`���T'�R;luC��!9i��5- � !��<6u{4uC;�#�q��<3!�2!�G�C\�!�@d�@i�@o�@u�@x�PX� ]aPP@<� zPYt"y zCw�"�rM)d��y��S��� AtHHtXHHtHH�� DžB���S!@9� pH��DžY`��'0���(��#u ��D�уuH��� ��;u A���Dž�����X��HHty+'HH���t0GPh���P��:��tDže�aG)�(��z�9��5��a�;t;H;t4|������wt+�`���u��� P^8��Y��p���Ae� g4itqnt(o�������ta��EU7�7��/7�� t ff �& aP�@c�Q ����@�� W��ugueDž_!Y9 �1~� ����~? �]��V ��Yt Y��?� 3@�G0e1c�!PG�2�SP5XA�= ��YЋ9`J! 9:�#uR�@S5d/�/�@YY�Xgu;%�`%�!T�sYY;-u`��C$bS���$s ��Dž"�+'� �Qi!�Qƅ0b�PJE���KZ�r t@tG=`G�f3%�;|;s؃�� ��ڋu3ۃ2�} ��Y@i   u!�Au0 $@�1t-RPSW7��09!a~NN뽍E+F�A��=� tat΀90tV�0@>If90t@@;u+A(I8�t,�,�i� e@�\'@t2���t T- �r+ t�! �6+ + a u�Sj p &�&� 4vBYtG�uWSj0".B� �pqtf~b9 lP �PjEPFPF5f1u(9�@t �`�M>��Yu�2P*�Y�$�|�t� "�I�@ 0P�t �p�� ��Ypt3. �t `pM_^3[Ð*@�(@�)@�y)@�)@�)@�*@�D+@�jThP@�e��3}EP@@�Ej@j ^Vu��YY;��*A�5*A����0@�@ x@$�@% @& x8@4�@ *A����;rf9} n E\�8X;E侫;|EZ[j@j �tVM �*A� 7�6*ƒ�`�`$Ɠ�D`8��;rE9=@�|=*A�el�~mEtVtQtKu Q<@�t<u4*A�E�Fh��F P*��YY���FECE9}|3ۋ5A�,t tNrFujX HP8@�tCt?W�4>%���uF�@ uNh�1)��&t7F N@Cg5*A�4@�33@ËeE(�c��ËUEV3;u��V� ����E��@^]2�SP A��(��A�3ʼnE�SjLj�P�@( �0 ,� � � � �f�!�!�!�!�EMDžj�p��M� �IǕ�Q�ǭ� ���X@�j�T@��APPI�u uj1��YhB�L@�PHM3[(7 55&��Yt]j?�d]3;A�tA-rHwj X]Ë}DjY;#]��u@A�Ã�D� �0VMQY0^]h7@�d5����D$l$l$+SVW�1E3PeuE^EEd8�pËMd �Y__^[]Q\�A�ЃS] Vs35T�WE�E0{R N3 8N F��VE@f��MUS[ EMt_I�[LDE�Et$1��E|@GE؃u΀}�t$t �Vs�AN V�0:F�"E�@E�ɋM9csmu)=*A��t h�0!VtUjR�M 0��E 9X thRӋ�{MH �"��EH]0��9S RW�u0��� VW3uk�Yu'9T A�vV$b��;�uʋ_�E�Pj�u J�0E�/ L�L�J����_,9E t�N�Q�&2�O,9ER�R�+j hp@�utu=*A�uCj��Ye�V2��YEt VP�Y+  }�u7u j��YVj�5t)`n0 k�@\dYjh�I3ۉ]jI�]j_};=;A�}W+A�9tD�@ tPj=�tE|('�ы PD@��4Y�dG� ,AE�@7�%SVuF Ȁ3ۀu@��t9FW>+~,WPVeYPD( ;uF yF N _Ff�^[]ËUVuu V5���Y/V|YtF �@��tVPD��YY3^]jh@�3}}jD��Y}3u;5;A����+A�98t^�@ tVPVDYY3BU+A�H t/9UuPJYtE9}utP/�u E܉}���F3ur�a4VMe�E���}EtE{j � �  ËVW3X A�<LA�uHA�8h��0}!��Y=� F$|3@_^Ã$*��3SD@�V>�W>t~t WW&�YhA�|*�p_t *�VuP �2^[`E4W�@�]j h؜ ^G}39t)A�u��j��h���YYu4�9tnj Y;u� ���PQj Y.q]9u, BWt PuW<�%6�] >W� ���E3 (|UEV�>�uP"�ujtY6@�^��hM3;v.jX3;E @u�W�F3���M u;u3F3ۉ]wi=*A�uKu E;p*A�w7jLY}uUDYE�_�];tuWS6u� ;uaVj5d@�;uL9=)A�t3V��YrE;P�0Eu jY;u (�"t"U}}M f$����ffG� �0�@�P�`�p���IuЋ}]W�W�E3+� u<MуU;t+QPs�EUtEE+‰E3}ME.߃}�@M�MU+Rj�Q~L���j h@�de�f(E���#E��=��t =��33@Ëee��Bfa3SEEESX5�� �PZ+tQ3�]UMr�UE[E���t\e3@3[*A�3o� QS3W;t9] w IjYS�p�P]!E3;t�:tj_9} ���F:FM;t@8t<."U G};syF@8uPQ@���YY</t<\t G;} sV\F7�rE;t�Q>;�E;t':t!.t:�S.F.�.��� vElj"3_^[ uME MUTu}�tMȻ`A#EVt3@}�tMapS�jj�uu x3�Aj�T��uuu s?��5�(��"A� � � � 5�="A�f�! �!�!�!%�-"A�"A�E��"A�E��"A����!A�!A� �!���A�A�X@�!A�jO$��Yj�T@�h@�P@�=!�p�uj+$�$h �L@�PH@�-��t"t t Ht3ø��ø�  � �FVWh��3FWP+3ȋ~~~  ~hA� F+ο��@Ou����@Nu_^ËU��A�3ʼnESWPvh@�������3@;rƅ t.;w+@P j Rh CCuj�v vPWZ�Pjj�E��3SvW�Wv SB��D!�!�Qh���%�%�$6EtLW�pt� �`/AƄ ���2VFDž3) � �06� ЍZ w Lр w�v р ��A;r‹M_3[Oj h8@� ��A�Gptl�twhuj Yj Ye�whu;5A�t6tVp@�u)tVYA�Gh.�uVl@�E���뎋uj Y7 S3SM$A�u ����x@�8]tEMap<u#�t@�ۃuE@� <�E`p[|� ] VuWd3};u2��u39A�� E0=���r��p�� �d��P|:R��EPW�A3��2CVP3B {s 9U���}����u���F��G�AM k0u>u*Ft(>EA�D;FG;v}FF>�uыuE}urlj{CVgjC CA�Zf1Af0A@@JuL@;vFF~�4C���@IuCC Ss}2ȋ{@95$X^!J0hXM @}_huuE;CWp ��؅F���� #�SuYYE �Uuvh"RFh=$PcY^hS=Fp������j tC$A�C� $A�3E}fLCf E$A�@�=} L���P}b@�!��  4S`0j %u �0St6��,�e�EÃ=+A��ujVY��L"3S0,W;to=HA�th���;t^9uZ�9uP6�;A��YY!�!� @!� P�&� 29�D9u@���-P������+P��u���>j���=A�t9���uP>��7CYY~PE���A�t;t 9uP%�9_tG;��$MuVY_^[]ËUSV5l@�W}W֋���tP � �����%_�{�3 )�{�t C�È�0֋�S�6P֏�������p����a#^[_]Åt7t3V0;t(W8YtVE>�Yu%VYY^3j hx@�c,��A�Fpt"~l�t�pluj ->�(vj Ye�Fl=pA�iEE���j };�"uV5A�5@�օt!A�tP�Ѕt��'t@�V @�u Vn�thd@�P(� tuЉEE^]j�Y{�!{�${�{� @���@�u5%A�e�%!�!�5^PP5*�;*�@Ѓ , C�2P@� �j hK:@V4�EuF\@�3G~t$M M@Ӊ~h�0u�� ~pƆ���CƆK��CFhhA�j ne�vh >���j M!�}E Flu:ĉFlvlY2���� 3Guj 5%�|, �pVW\F5@ybNh��jY1:V*�05Si`j�V?@YON V^Y3W@�_^ËVV�@p^jhz uCF$tPM�2F,��4� E�"F<��@��D��H�� \=�e��Sj ~htW`uPtW-�tW9� E�~lt#WY;AtU ?�uWp���V'X�PI!vbuj j �>VW q`^��5h@�Wh� %A�h ��JAh ��@փ="�0�5QA@t=)�P�t =%��tu$�H 9�QdO@�%<�b���P0`5?�0 ��U��!��v�j�M�1qm�tehXQ@�Q�=YУ�H )4V 3�@t�  3@3_^ËUSufM]C=���wE苀���Xu]}EPE%���PG��YYtEjE]E�Y 3Ɉ]E�AEjppEPQEP�P6�� u8EtE`p3E#E }�tMap[ËUQVu VwE F Yu8� ���N /��@t �"���S3ۨt^���NF F F ^] ��u, ;t �@;u u ��YuV?��YF ��W���F>HN+I;N~WPu *�� EM F yM tt*A�A�@ tjSSQ*>��#ƒt%FM3GWEP�mo�b9}t ($4_[^d(QS]VW33};A�t G}rw��jz@��Y4�i�u =A���Q A��hp@���S %A�W08 ` t V�%h��9%A�Vj�=&A��@�u&hX@�h��V7B�@3P�"D�V��@Y<v8Vz��;j4(A�hT@�+QPpt3�2VQC�3hP@�SW&��-$�E4ŌA%�$5��%�h �h(@�W=$� 2j8@�;t$tj�* 4P� 6 ��YP6S@�_^[j>|`tj �Cux0uhs`)hsYYHSVW5+A�5+A�}YY;$+ߍCrwW>��CY;sH���;s;rPusi�uG;r@�]�t1P4Y�uV��qEY3�Vjj �@V& B�.�ujX^Ã&�3^j h@�ee�l� EE �E'�,�YH]ËV@�� W;stЃ;r_^&�&���&� W3@A�6Y(r_^MMZ��f9t3]ËA<8PE��u3ҹ �H‹]�@�(EH<ASVq3WDv} H ;r X;r B(;rv O���jh@�h7@�d�SVWA�1E3PEd�PeE�h��@�*tUE-�P�P�t;@$Ѓ`Md Q�Y_^[]ËE3=���!Ëm��.32�jh(@�W a@xtg3@B�<��ph [@�'�4`QQV`)F��V\tA�W}S99tk ;rk ;s99ut X]u3u `�3@�@ަN`MM N`H� hA�=l�;}$k ~\d9�=��lA�B߃ ;| ]�~d=��u Fd���^=��4N=��4>=��4.=��4=��0=�+Fd���vdjY~d`�QӋEYF`[_^ËUE8(A�<�@�UD(A�]� tA�V9Ptk u ;rk M^;s�p3]5D�BYj hH@�J3}}؋] LtjY+t"+t+td+uDs}؅ua����#`w\]ZÃt<t+Ht����3P�뮾��0��0 ��E���PEY3}���9Euj9EtPY3Et tuO`MԉG`u@OdMGd���u. hA�M܋ lA�hA�9M}Mk W\DE~EF� wdSUY]}؃}�tj�T߃� �CEԖ�EЉGd3)L*X�\�@jhh'me�u u@�E/E��E3=��Ëe}��uj@�e��YE_�`o� 5 �|Ytq� �`3@]Á(�E�8csmu*xu$@= t=!�0="�d=�@uC3]�h_@�T@�3Ã=+A��uHV5< A�W3u���<=tGV��YtujGWYY= A�tˋB�SBVR��C>=Yt1jSRYYtNVSP|.�� �!">�uP�p%��'�+A��3Y[_^5 A�% �a�.QMS3VU 8�P9Et &EE>"u39E"FE<tBU PF'} �t M E FU Mt2}�u t utB�M >����< t< uFN�}�t E�3C3FA>\t�`&ug�t F8"u 339EqtI}�\Bu�PtU=� u< tK< tGt=Pt#9�b M �&�C #�FU FVt�2�1�0E^[t � S3VW9uhRh(A�VSl)A�@�+A�5( A�;tE8uuUEPSS} E =?sJMsB;r6P`SY;t)?�@WVA�$A�@H r� A�3_^[�Pp)A�� V5@�W33;u.֋;t "��kP#\xu jX�"B�@!B;u;�u3���f9t@@f9u�5@�SSS+S@PWSSE։E;t/PYE;t!SSuPuWSSօu uY]]W@�\t;u@�;r8t @8u@8u+@PEBY; u V@�EuVW+���'_^[ËU39Ej�h���P@�t)A�u]3@*A�]0�:A�e�e�SWN@��;t t УA�`VEP@�u3u@�3��pEP(�E3E3;uO@ u 5|�@։5a�$^_�Eu� ���3]V3;|;*A�rV�#�n3ȃ *A�D@^]�39x)A��L$���t$tN�u����$�'~Ѓ3ƒ�tAt2t$���t���t͍Af�e+ÍA � � �SVu 3W};u;vE;t3����vj^S�Q0PVuMsE9X���fE �;v6;t;v WSV8<�@ tА*���i�8]tMap;t2;w,I~�"~� B�8]yx�`pm�`���T�7%$�M QSWVjMQS] p@�;t9] ^3�M;t\@�zD;g�p_� a�0 O:��?j�uuu u| �,0u 9:EM���A%���}�d�U�%YY]VD$ u(L$D$ 3؋D$d$ȋ�Gȋ\$T$ $�N ud$ȋD$r;T$ wr;D$v N+D$T$3+D$T$ ؃�ʋӋًȋ^�%*A��QSVWT�L$URPQQh i@�d5>3ĉD$d%�4D$0XL$,3p t;T$4t;v.4v\ H {�uh��C1��C1��dgp_^[ A��� t3 H3袵Uhp pp>! ]$�`T$UL$)qqq()��UVWS33333[_^]Ëj_0"3333USVWj�j�hi@�QQ��_^[]Ul$RQt$= ]�j h@�e�u;5p*A�w"jY}Va ��YEEEjYVVu���SW=d=�ujh0M ut3@Pu VSuuFVj�5W�׋؅u.j ^9)A�t%Ytu{�N0G�_[V{'�03A p^]jhh]uu � "u u ScY��=���3}��jw"q}S6L;���rqIVSPAхt]5V .�;t'CH;rPSu:$��S��ESP >�9}uH;u3Fu .Su VW0 ET� T�#��Su�$.���}�u1uFZu VSj�5t)A�@�u ]jYË}���9=)A�t,VY9}ul\@�P_Y_<�q���%��th� ���quF�auV9i�Q4Vi�tvV�RCG� 30|u"�YҋUM S3;v(j3X;EsS�[�u3AMVW9]t u)��YV � YYt;s+Vj�SXA� _^[]{� h*A�l*A�kU+P ���r ;r30�MAVu W+y i��D��MIM��S1UVUU] utJ?vj?ZK;KuB��� sL!\D u#M!J�%��� uM!Y] S[MMZU ZRSMv�]]���+u]j?u K^;vM6� M;v;t^M q;qu;� s!tDLu!�a1K�����!qF�bIN �TINu ]}�u;���M ыYN^qNqN;Nu`LML s%}�uʻ���M  �^qDD )%�AJ�&�`YJ�Aꍄ� ED0E���|)A�ء� |*A�5@�h�@��H ���SQ֋ �3�\�1 P�2@�0X�b@HC!�HyC�u `�`xue9Ap �6pH`H��Pk +ȍLQHQP+��E +� ;,�avm t�0E� =�[_^áx*A�V5GW3;u4kP5f�W;u3x6�6�'�Ak0�thA��j6�d@�F;tjh� ��hAW� ;uvg���뛃N>~�F_^!QQSVqW3C}i 0j?EZ@@Jujh���y h�2u����p��U;wC+ GAH����@�Pǀ����h�IuˋUE��O HAJ HAdD�3G0FCENCu xc�!P_^[1 SVuW} +Q OI;|9M]U��E��;; IM?vj?YM_;_uCcP shAL&/h� �O_YOyM+M}�}M OL1?e_]][@�]YKRKY;YuWLML s}�uϽ��� DD �;O=�$OD MD2LU >FBD2<��38��/��] )uNK\3uN] K?vj?^E���u��#O;OuB��� st!\Du#M!NL���� u�Y] OwqwOquu�q�M yK{YKYK;KuWLML�}�uο��M 9DD �GN�Ay�AN4�N ED3@_^[ËUh*A�Mkl*A�MSI VW} M 3U t?�S;#U# u ];r;uY�$�r;u[ {�:�S;u1:� �$r;u؉]u3 ��S:YKC8tt�CUt"`|D#M�u)e��THD9�E���Ui��D��MLD3#uY�#Mj _G}MT +M@M~P;J;Ju\ }&M|8Ӊ]#\D\Du3M]! ,O'� .�!!]u ]M!K]}�JzyJzypJzQ!�BQ�^` }#} �u {g ;q |D)#� 0 {��1Nྡ 7Mt LMu L2uy>u;|)A�uM; |*A�u%��MBSVuW3;u赾W�p����= BF t7V(V(��V購P'��}F;t PY~~ _^[]j h@�藾M3u3;;u2~���AW躽� F @t M�E蚾V薠c�`}V* �EE���ՋuV%���8*��A�3ʼnEE V348�q09u>��;u'訽0莽V�'���SW}4`,NJX$('tu0Mu&?30#k�!C��@ tjj�j�uc� �>Y��D��@l39HP4 @�`��39�tP��@�.A�P3<0EB��D�g�� �3 m�ǃx8�tP4UM`8�jEPKP�@t:t��+M3@;�,�@SP<( ��C�ajS%�7P$� 2PPjMQjI�@QP>�0�\��j�� PV� �49Q)��{� I@9! ]���W��T�(jU�IE Y� 9�<��)08���<t<u!33f CCD@ )�!R�%%��Yf;!�qh��U�0.��t)j XP �8$-�B;��� �AE9p��'��$�T4D8��3ɋ@��4������<9M ��(� �0�+8�ЍH;Ms9�;�A u�Q� @�# � E���r‹F�+j�,PS�P4@�B��"�,Q;:��{�+�;EL ��h�����(M�� � @� �1F��AAf uwj [f@@��pf@@R��� b �Z����?�#@�|#�#� �jH^<�P*�!��@��Rf� ��r3VVhU ��QX�++PPVh��@�;���+P5=�1PL�@t �; \@�Q;\�� ?j�;�`Qu$011tO �<� `� Q�ul$�at-j^9u� ���0?s"Y1D@tL8u3$ֶ@�@�޶ � �+E_[M3^hjh@�Eu<�!O������3;|;*A�r!y8_(�W�ɋ*A� L1tP9i}D0tWu u.F� E���!u�ME�Eh;�V���f@� �5I����5;�5!�S�#��<�QL�Pl#��Y]Dt1�"��YPT#u n E]9]t1M~��#�j�ËUS39]uִ�@S� ^C�3jVu ;u$�:$�`9urG>uMV�%F9YtH9Ew D u+ȃ+N8]tMap^[ə�2j� U�" ]�!S3Vu9]u;u9] u3��;t9] w j^�P0蒳F�P]uW};uس1�a1�(��uM胛&9XuuWu V ��L��}U u@G:tJu�JtMu�:@;���8t}u5x};rEPE�P0YYtM9us+E�{�uZE v:|};r!REPE�PYYtM9usE +Mt\8]tE`pjPX���跲j"^SSSSS0@8-�d+΃|Mx};r�i�+EtTj*X�Map��3_^[ËUEt8��uPxY] �$A�3ʼnESV3W9)A�u8SS3GWhd@�h���S@� =#��\@�xu ����9]~"MEI8t@;uE+H;E}@E0���;����]9] u@E 5@�39]$SSuu���Pu ֋;��~Cj3Xr7D?=���w#��;t���P Y;t ���E]9]>��Wuuujl����51SSW!�% u֋ȉM;���E ���t)9]���;M���uu:� �2~E�r9D �"��;tj�PJ�3;tAuVd�"SS9]uSS��)�Su @�EVYuEYYr]9]IEu ��YEu3!E ���SSMQu> ��E;tԋ5@�2PuQE;u3���~=w8!��;t-43;tuSW` uWr�3%uEuPWu��u#uWYKCuM��p9]t LYE;t 9EtP�ƍe_^[M3'uM!u(Mu$��B��n�0(� }�tME�&QQR)A�;u:EP3FVDV5)�'4AjX�E�ϵS�#�Qu % <w4xļ-P�؅ti?Pj�Sސ2 WSjuօtuPS�rES@u3�gE9]�uA��Y3G;EtQu Pui$;t܉u@�;tVEǍe/(� "$ j0� Vu��vvvn�1 f�1^�1V�0N�06G�Av ?�1$7�1(/�1,'�10�14�1�18�@<�p@v@�1D�1H�1L�1P�1T�1X�1\�1`�1d�1h�1l�1p�1t�1x�1||�@���n���c �X � �M � �B � �7 � �, � �! � � � � � ��,^]ËUVut5;HA�tPݭYF;L��Qv;5P�0V� E�q~F ;T"�0P"�cF;X��C;\�s�C;`�a�C;d�O�C ;h�=�Qv$;5l�0V+��ES3VW;t} ;w衩j^0S�0*$<u;uڋ8tBOu;t BF:tOu;uZG�"Y3_^[]��K33P�U I� t $uI���$s ^ɓSa3W9]�c9] un�&;�)̨�$U�;�ʋU;u � у}u @B:tOu�OtMu=�p;u4�uE jP\XxRz�H#Muˠ�,&�u$�0uڋъBF:isja��h�XT$L$���u<:u. t&:au% t:Au t:au uҋ3Ð���t:u t�`f`�P t`� t눐�:UWVu M};v;�����r=*A��tWV;^_u^_],��� r*$T@�Ǻ�r $h@�$d �$@�x@�@�Ȑ@�#_FGFG^�^�&I,�&�p�&�P�0� ��XI�K@�8@�0@�(@� @�@�@�@�DDDDDDDDDDDDDD���� �l@�x@�\�E^_Ð ����&3G�t1|9$� $@�$@�I�+!�-�@�(@�P@�F#шG>>[���$�A*�L� F FR�GgV2�I�@�@�@�@�Ē@�̒@�Ԓ@��(DDDDDDDDD D DDDD���@�@�@�,@�dcFG��2G����� m?p!i# iGFjPQQE nrEEWVE��Y;ui� ���NjJuMQuP�@�E;u\@�t P[Yϋ*A�D0 EU_^jh(@�O8u܉uEu� �� ���Ƌ���3;|;*A�r!֢8輢)�W�Dȋ*A� L1u&A�{j��@�2WA�[Pp��Y}D0tuuu uo�E܉U-N�!5`�MME �E܋U蒢E�c�ËU A�h���YMAt I A�I AA�T�Aa�]I�DSVWbe�=)A�����h�@�@�*��5(@�h@�Wօ��P謸$�G�aP藸��@)A�����mY)A�th��-�U�P)A��`;tO9'�tGP賸5�@*�Yt,t(�tMQj MQjPׅtEu M�� �9�p;t0PcC�t%ЉEt�s;tPF�Au � 5�#.�!�3_^[i MV3;|~ uD A�(�! �pV�����蚟;^]jhH@�93]3;;u؟�5�`:�S=*A�u8jU@S �E;t s uu%���9}uSW5t@�3]uj#Yj菉 �$(��A�3ʼnEA�Vtj 3Y tj Y#����� � � �f�!�!�!�!�uEDž0���@jPj�P:�a (��8�1j�%���@,T@�*�PP@�jUSVWUj�j�h@�XV"��]_^[]ËL$A������t2D$H3貅UhP(RP$R���]D$T$���SVWD$UPjh@�d5���PD$d�"D$(Xp t:|$,t;t$,v-4v L$ H |�uhQDI>�_���뷷�0d T�_^[3d�0y�uQ R 9Qu�SQA� �l�KCk UQPXY]Y[�GVWuM资Eu t0;u,ќA!YA}�tE`p3t }|Ƀ}$ËMS}~���~EPjPeM ���BtGǀ-uM+uGEK��B��$9��u*0t E K4<xt <X��P!E � u0u&�<XuGG��L3u Nt˃0��t1ˀaw ;MsM9Er'u;v!M}�u#EOu �Pt} -[]]ى]�"uu=t }���w u+9uv&0E�"MEj�XƉEEt8Et]}�tE`pEEt0�$3[_^ËU3Puu u9$A�uhxA�P]�XUWVu M};v;�����r=*A��tWV;^_u^_]| �����ur*$@�Ǻ�Jr $@�$@�$@�(@�T@�x@�#ъFGFGr$@�I�,�&�p�&�$�0� ��XI�@�@�@�؝@�Н@�ȝ@�@�@�DDDDDDDDDDDDDD���� �@�(@�<@�E^_Ð� ���0I� ��cFG�t1|9$� $@�$P@4+!�-�@�؞@��@�F#шG>>[���$�A*�L�� FR�GgV2�I�T@�\@�d@�l@�t@�|@�@��(DDDDDDDDD D DDDD���@�@�ȟ@�\�SFGr�2G������-VuWV��YtP*A�u ���u u@Dtj��j4�Y;tV} �P@�u \@�3V��_�XYD0�t WŖY3_^]jhh@�ӖEu荖 �r� ������3;|;*A�r!d8J(�W�1ҕnɋ�1�� L1tP$�}D0tuYE� ME ���Eb2��iF ttvf 3YFF^]1�A�3ʼnEV395A�tO=tA�u �� � u��pVMQjMQP0g==�2uڙaxuωQ� VVjEPjEPV@�P ^�tVURP)�AQ V�tfEM3^|g�a���_@S3;t9]t8uE;t3f3^[uMd|b9Xu%�ff8]tE{3@ʍEPPYYt}E~%9M| 39]RuQVj pEuM;3�r 8^t@�8]eMapY H*����`:j��jEjn� %�!%j�0QL$+#ȋ%�;r Y�$-����P�EVW|Y;!sQ"<-<u5=A�S] u�tHtHuSjSjSj@�3|[� ��� �_^]ËUMS3;VW|[; *A�sS<*A�@t58t0=A�u+tItIuSjSjSj@� 3w�a�[�Euc�%H/�]V3;|";�ȃ *A�@u$"]�p0V���^]j h@�+}�"�4� E���39^u6j XY]�h��F PoYYu]FE0���9]t]�[�D8 P@�E3ۋ}j Y.E�0D<�@�]jh�d��M3}j �b��j Y�}}؃@<��4Bх���u����;���Fu\~�u9j PI�a3C]� #c  ]Fe�(���}�u^ S��U�PtS��@낋}؋uj �1�F+�u}uyG+j@j 菒~�Eta �16Q �s@�@ `�@E}tσDWWTM�[�%j W A�3ʼnEjEPh��uE�@�u �`��YM3w 64I�EME؋ESEЋ�VE܋EW3M̉}};E _�5h@�MQP֋r�t^}uXEPu օtK�pEuE �u&YF;~[wSD6=���w/g�F;t8���-WWuujuӋ;u3���PxY;t ���E}9}t؍6PWuqY VuO�t];ti� S"�W�"�`][�9}uWWWW&��t<Vj\3;t+WWVP%�;uu%�} }tMЉ�wYEe_^[ Mu�QL$+ȃ Y��00Puu TM����fofoNfoV fo^0ffOfW f_0fof@fonPfov`fo~pfg@foPfw`fp����Iuu}]U}u]] ÙȋE3+ʃ�3+� uJu΃M;t+VSP'+EMtw]U +щU+ى]u}MES;u5كM MM>�UE+EPRQLb�$-�ʃU�1]��0j j1��S3VW9]�Ms9]u.譋S�����5@�8]tE`p���} ;t˾�{9uv(n?�-?� `E9XuuWu�� f�DMap;E�MQPG��EMQP5�+�GMt;t;t+3_^[ËUV395$A�u99uůV�����T'9u t܁}�w^]��Vuu u.�^]3PPjPjh���@hL@�@�tA�á� V5@�ttP֡pA�^�=+A��V5 A�u3cWu95 A�tS��uJ"�t@}�t:�aY'PV �;v<8=uWuPn�� tu*$]ËD8jh@�jGY3u3];;u �@_8G@V }���3E ;t039u6�tuYE;tXP讷GjWlC�� ;u)� �E*uWP*�B;t ~� l�t�8uE ���Ejj蜏Ym$SVu Mp]���;sTM胹���~EPjS膥� ���XO0� ���}�tE`p震�2胸T�1]}[�E%���P赵 YtEjE]E�Y*���3Ɉ]E�AEjpUjRQMQVp�0 $oEt M �`Map,�PUWVSM tMu} AZ I�& t' t#:r:w:r:w:u u3:t rً[^_ЃSuM oW3;u8]773���9]u.S� �0�!3�P tVz;v܆=�d=�?E9XuuQ �#`6p�Quh��p EP!�X ;u~�r�$MU&j�>>]QQSV3W=�u;te@�jPVVӉE;tTjP荈YYE;tCVVuPj7&�t6EVP��YY}9ut uAxPue� u[Ã!� !�D$L$ ȋL$ u D$�S�Rd$ �q[��MI8�t@uIE+H�4,A�3ʼnEESVW3ڋ]܉E9=`*A�u8jd@�PjPWW$@�t `*Ap�\PAxu �}~&u!YEU;~ER[YU}}3��| }���;��3@;u։}9}uIM9}m@x�UujXu��;m��9E~jquh�%9}~)}r}�Et׊PtЊ :r:v@@8�u9}~8.�s3@X6�6�M :r:t=�΋5@�WWuSj �Z֋؉];���~@j3Xr4D;w&ąt���P褶Yt ���Ee�}�Su1ju��`���j�Eu�gt{~B�6�tZ�P!�t ���3t1SWuujuօt�0uu u$@�EWYuEY���339}u@E9} �Eu Y;utPj�j�EPuVu-%�؃!�QPu!� !�!�u S觅Yk]܉}�duuܺ� @�tSwWq6�%Yƍe_^[M3iËUuMiu$Uu M�) u `}�tMapB�@SuC�iiU3;u8]tE`p3���9]u.vS�����\�0�q3�P tV�k;v9=�=�KEH;uEPR02\�?pE�Ruh��QP� ;u߀��r��#^[�V5 A�!WP 9M� u <=ttuً+1�^]�!QW3υtF9t @9�uV@jP蹂WYuuj jjPc��Yu!E^_�ES3ۉ];u x�%nV0Wu;tSj=V��YY};t@;t<38_E�; A�u 5� u`9] t$9 A�t3tJuj@_O9]��j菁YC�Btމ@�aujt��O�b;tÉ0u;t+}ub;Y|R9tN46lY9]uEE���F�G49u?sjjW0߁q ;tUN����;}ߍG;6=8�+Pj<�<�@ YM��$xujVȬ@Y@PЀ�YY;t\VV�AWՎ�@t B@S|�M+E@#QW(@�uM}yp*���WYLP9]t6 KYEh 55�@3SY�30S3p3AVW UFV詰�"uVW@�"{�3_^[]@SuF!#e�3;u(H}�^JtVu9^u:u P���YYAD2t@:t> 9M u H9U t @ff;u9M ug� ��$j�n�, ]̍B[Í$����d$�3D$ST$���t :tτtQ�%u WV ؋ ~333ƃ�u%� t�,u���u^_[3ËB:t6t:t't:tt:tt^_�B^_[ÍB��a%@�� UGz;u{4�D 8tߋM ;t؋;t8tSQR�� UVujXEU;ucL�P �H{ �����S3;|;5*A�r'9{��.��zQ��W<*A�ƊHuzz� ���jwP];����9] t7@$EHjYtHuШtUE E���Шu!zl�ml�P���S�y4M;rEuz|YE;u58�a ���= �T���h��jSSu|D(ET,AHttI tl9]tg@ME���D 8]tNL% tC)�>)�}E-�P% u$*�&S�*�*�BE&� & SMQuP4,@�{��M;p��;Mg�4MD���}��;t M9 u ]EÉ]E;�Z� <���< t CAM鐒EH;sA8 u A�  uEmEj�EPjE�`u \�uE}�t?DHt} t ML%;]u�pjjj � CE9EG�@�C+EPE��D*���K xC���3@;]rK @A��t�pu w*zA;u@1$CQ| T%Cu�&C+ؙjRP�!�E+]Pu Suj�h��@�Eu4GPwYME;E tPzYE��E�3;EL0;tMf f���f tf CC@@E%�M;sHV� Ej ���G|3E)OE)[)U)(f} tj Xf--� �L%D& *=-�>d!d�E�CCCtCf�fCC+]]j^;uu��4u0imY]\3_[^jh@�uEuu �uK���;|;*A�r!a�%fs�V�0t�ɋ L9t;MAu2N�N��U`P8uD8tuu ? ~g� Et�0t�pME ENu;�iV�ËU0S3EVW]]EН]t ]E E���]EP ��Yt @Sr�*M���u�@�u9EtM+ú������tGHt.Ht&7�tj^U�Q0sW�4���Ut���uE���@}EjY+t7+t*+t+t@u9}e### 42]E���#¹���;���;t0;t,;t=������=���@ExP/E �@&E70=�t=���t`;1��LEE���t  A�#MxE���@tM�#��M���M���t } tM���E���릨t�@urr�������E=@�Su����uEPuuu ׉EG� mM���#;u+Et%e?�~EuP9�$46*A�D0 \@�P?rYr�t�<@�;uDA� VqYu@�;uq� uM@ uM.�64Ѓ��YYML �rD$ MeHM�����EtqjW6�� E;u:q8���tM6jEP6] u}uERP6M�;tSS6F]�';tE0���@��@��}uE#u M EE#;tD=_t)=�@�t"=����� �t=�@�uEM�� E]E����@]f!9=���@��� �tw;$�&;y��vv0f��E3H&��HR��E� a��j  87a tS�'#ƒjEI /,� � utk���}�uY�!2�!��@b4�sP� T� C�� #k� � E%��=��u6 oj^0d��=�uSj6X�J�QA�=�AE�BE�a+PD=� ��9}ۋ ��$2M0"�M ʈ8]u!Et5��M�Z�<r }S!M|UvW jV jW�4@!mh� 6Y6�_^[jh@�mM3u39u;ummVP���V�0lNruuj@�uEPE"�EE};t<m839ut+9utE2M;1D5 uYËEomËUQQVD�ul�0V��&Q�pJ9u t�!Pluu |UptujUouo�R^y�SW}3ۉ};u Il#SS� k3��$��8t܋E ;tՋ�;t8tVj\W ��j/W �;���;.j:W=YY;usWI�ЃjVMnh�� ht@�VWkÅ�` t S�0j�uVW �� i�w} ;t;vMj.Vh ��YYt,Su �1H�V��`W�1�B薙��j� �;u���uVP t S�0`i�!uQ}Yj�EE+EA�E0VWrF�F�Su] ��YYtm}A�}juMu -� �@ E�m}Y9}t �0mYE^_[ËUSVW3jSSu]]E#ƒUtYjS"�Fz#ʃtAu }+���;������Sj4@�Pd@�Eui� ���i_^[h���u�E| ;rPu!�!��� 6~�xӅwϋu��#�FD�Uuj��`@�3x�Wfa8u :� ���u;q|;skSuu Q�ApDYP0@�HE#‰Uu)h�_�h\ u#uSuuk�k�p3�pVuV"y��b�1yb� � MWuj�u P�@�uw�#3t PihY*A�D0 _^]+@S] y�,�!,�#.� 0A$Wy����@��tPtB���t&�@�t� �u=I L1$⁀'�Ƃa �!_^[uc� ]Ã`%���{��EV3;uNgV�0� fIjX d*A�3�.hES3W]];tt~~ u EEE8gfSg�og�#��@8uH8t� 8uVjD^VESPdJu5 ;t+Fȋ *8\uNH;u;@��23��4��kfEjP!YE;��;0E̍H|0]~9EЃr�Pu�EA9u|ʋE8]t,H3D}j_;} BAE e3�EPEPSuu{T @�6pű�$;u WeYX}uS4R5@�9]uju@�EP �O�]}u�]u֋(e Q/@A�3ʼnEM XVWx@�}fMԋM3ۉMMjEȋ�M]܉]]^P2tY;ujVu*guYY;u#Ed�0d ��9�M/��EPESP ;tuq0b�0b)�0蹒GGY}9]tu褒�E;tOj�_�|Y��< A�;uC�5u6MR�EYe���}ȋ6;���FU��]8t(=tVaMLj�4M:u܋MM+8Xt-x:u'x=u!Pݑ;�p؍D � E8=t΋E+Eu} PP �6��tM9u}jWeM;26kXfYb� ���cM����i��E���P+EPV t SSSSS'a7t6PE�6�I6� `G�T7 FY;uËE^09]���}؋E+Q < A�QV+} }6EM7+PVѹg��yx�bkY�9u9]ug}ЍEPWV藹:�?:�h`@�WV � �9]tuWV߷#� _�;t E;0uF�;tPd��K�` u�E܋M_^3[IËUV39uu$Ba0(aV�0��4jXUE uu8@�u\@�PaY`�(u"tE t`*S� ` � R3^]�Su3ۍM]lHM;u(`-S��8]tE`p3qVu9^uu Qj��YY$�,WMapNWD7t!A:t 9E uAE 9]�MA:u_M�q�SE^[Ej�u u2 �39]u3��uMGE9Xu&u=�!=�8]m���a��W};t9] u._ �t%��VfMGDMtC:u]Xff fGMf;pr f;pwfp6f;pr0f;pw*fp$U At f��D�ҋuM f E ��dEU �W�+��?�!;H�H�H�H�H�H�Mf;u!f;t 9],3^_[H�{!$� #J]�0U3كE 8t3_��-��������������4��L��`��h��z��������������������8��V��j��z������������������������(��8��N��Z��j����������������*��D��T��j������������������ ����,��>��P��b��n��|������������������(��8��J�@�A@�4K@�X@�_@$�f@���failed to get exit code from process. ��(�hcreate� %s�%s��Could noH� ec�P��Can�find Python executable %s ���#!p�.exe����#!��Cannot 4open %s �-script.py��CorExitProcess��m�s�c�o�r�e�e�.�d�l�l���(�n�u� � )��R(null ���������EEE�A50�P-� 8PX�700WP�� �`h````��xpxxxx���������!A��"A/��  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�=���EncodePointer���K�E�R�N�E�L�3�2�.�D�L�L��*De,�FlsFree�FlsSetValu �G �PAlloc<� runtime error �� ��TLOSS���W�SING�v�DOMAIN�)R6034 An application has made an attempt to load the C |�library incorrectly. Please contact2�^�'s support team for more inform�.�0����f3 - A�use MSIL ; from this assembly during nativ�d\�qitializ_� T0�0ind�es a bug in your . It is most likely�result of callm�!an�-compiled (/clr) funcT�a�nstructor or�qDllMain���2�not enough space/Plocal�1018�0#in�e�2CRTpthan once.�h���0d��J���a�d � 28 �`unable:"�P heap&� 27(��D���Ewio 9�8�68�?std8�58�pure virtual�a�PR6024(��_onexit/at� t�7�� 198��Pconsole device,�$expected 1 %un$�multithread lock0�5�data � `reques��Ra�to terminate it)pan unusA/wa8AR600D|environment p0D,�@argu)�sq�X�PPfloatUpoint�C��e��Microsoft Vi�DC++ L� ��...�<program name unknown>��3�EB! P'� : =������ �S�� � �A�� G��� � � � � � ���EEE6��00P��('8PW��700PP��� (���`h`hhhxppwpp��������, ��$(�� ��?H�� .�� 2�&��/��B�&��/��@� h]%����&�/��8����� �f�7�& �/��'� 0��&�&� � � 󀁂�  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�k ABCDEFGHIJKLMNOPQRSTUVWXYZ �{jHH:mm:ss����dddd, MMMM dd, yyyy�MM/dd/yy �PM��AM��December�5Nov �@Octo�DSept�August��July0�@June�April���March���Februar$�!an �Dec�Nov�Oct�Sep�AugH��Jun�May�Apr@��<��Jan�SaturdaD�1Fri �QThurs �s��Wedne �"Tu �1Mon�#Su�at�Fri�Thu0��Tue�Mon�Sun�GetProcessWindowStatio�UserObjectInform�0A��4��LastActivePopup��G� �MessageBoxA�USER32.DLL�t�MonTueWedThuFriSat���FebMarAprMayJunJulAugSepOctNov9����CONOUT$�.comt1.ex|!.bG�Q�.cmd�\��SystemRooa�@���H��$A�@����7�� i��M�@���0@��� �*# � �j%@�% � �j<5@�@5 � �*: �@���*; ��� �";= �� �5=@� h�">(�� �/? �oA@�9A ��|�*-G � �*J � �/kN � &P� �0&oR(�{ � p�*5Yp�H�oZ@�Z �j-[@�1[ ��*^ �j_@�/_ � �*)j �@��p*:l � @�*>y � @�/N � */ � *$ � `�/ � *T � �*˥ � " �� &ͦ �"L(� �*h � �` @�Tf��b��� � ���������������4��L��`��h��z��������������������8��V��j��z������������������������(��8��N��Z��j����������������*��D��T��j������������������ ����,��>��P��b��n��|������������������(��8��J������RGenerateConsoleCtrlEvent��GetExitCodeProcess��nWaitForSingleObject��CreateP'�A��SetU�.Handler�GetModuleFileNameA���EnterCriticalSection��Leave�F�Y� W��+Sleep�"GetProcAddre�QExi���p<�CommandLineA��H�0Cou�>D�2Std�0��4���bType�<�artupInfoA��Delet�7Termina0��L�eCurren�QHUnh"`dExcep�Filter��Set�IsDebuggerPresent�b� LastError��HeapFree�� �pAlloc�\(� CP�@�IlockedIncremK�(��%De�S<�`ACP��0OEM �IsValidC4age�>TlsGetValue�<�}� �? �S�=���j�0ThreadId��WritD �LoadLibraryA��InitializrAndSpin Kq�pEnviron�StringsA�t��/�L2� W�WideCharToMultiByte�H�AW��C6��aVirtual��YQueryPerformance�@er�jlATick�0��`��pessId�S&�SystemTimeAsime�RtlUnwind��"Re^��!�Z�oGP���Mode��BFlush\�Buffers��LCMapHUA�� $To!(�&�AW��@�|�`JA��C�@W���`Locale@A��(�~�0Poi1���Size��D�Close.0A�N��`Output&�0W�z"y��u�A�S�Compare�V�@W��ؤ�HVariableA�KERNEL32.dll��nReadX�2��4�2dOf�& �0��ʾ���AttributesA�"+���������������X���� �� ��� �� N@D#@\l@�\@� ;'�@����� ���������� ������ ������ ������������ ��X��<���X�P�S�����x�!�5(�A�C�@P���4�R�S�@W���`�@Y���|�l�m��� ���p������r����0�@����� �P�H����)�����p��� � �"0�$�4��t�� ����(��4�������,���� ������ � �� abcdefghijklmnopqrstuvwxyz� ABCDEFGHIJKLMNOPQRSTUVWXYZ ����6�������������� abcdefghijklmnopqrstuvwxyz� ABCDEFGHIJKLMNOPQRSTUVWXYZ ��lhA���`y!�" �"�@ �1@~���ڣ ���"�@�0�A0����Ϣ�[M��`�!~2��Q��Q^ �_j2*� ���1~:�l@�C�#���=9AS��-����U�&Hd�h@�@�p@�A�A��������@����@� ���@� ���@����@����@����@����\@����$@����@����@����@����d@����D@����@� ���@�!���@�"���@�x�@�y���@�>@@�mP@��_@�Η�q�����X������c�� lj@�@�@�@�@�@�@�@�x@�p@�h@�\@�P@�H@�<@�8@�4@�0@�,@�(@�$@� @�@�@�@�@� @�@�@�@�@0�$@�@�@�@�@�@�@�@�@�@�|@�p@� ����.T_A�)���$�8�<����L����(@  ���(�"p�0H�PST� �/PD@�+A�A�}� ���������;���zx�����������������0��N��m�T��4� :���Y���w��������������/��M��lY��� ���l@�d@�\@�T@�@""" Improved support for Microsoft Visual C++ compilers. Known supported�?: -�{ MicrosW�9.0: �Cu� for Python 2.7 (x86, amd64)>��Windows SDK 6.1+�x64, ia/� >7.0/��.10�z�7z�K�4K�xBuild Tools 2015�<arm�:�`Studio1�-arm, arm 8� u�D�p""" im4 os �%sy �platform�Pitert�� distutils.errors from setup(� .extern.packaging.version w�rLegacyV� ?�six.moves7�filterfalse5�t.monkey!�get_unpatched if �.system() == ''� �awinreg safe_env = os.environ elseS��d!Bock 8�S and *� so the module can be�!edb�von this���X� �SclassZ�s��o�HKEY_USERS = None,��qCURRENT"�!�LOCAL_MACHINE"�CLASSES_ROOT!�e��dict() _msvc9_sRress_-A = (2�!# � isn't available on somes6�IEx!, � H�raises DP4�" iV�:�ments. See #1118.� .S�, ) tryM:� �� Reg except $K�pass def*_find_vcvarsall(U).���P/ "�.F�" to usetstandal9bb(VCFor). Fall backM�original behaviorM0whe&e d�g is no.Redirect�path of "S.bat"+�}��2"��Parameter��q: float��t�Requirede5�. Return 1 -� vcvarsall.bat path: str�1"""�+VC_BASE = r'Software\%sMicrosoft\DevDiv\VCForPython\%0.1f'?�dkey = E��% ('', version)"�Atry: ���# Per-user installs register the compiler�U here<�productdir = Reg.get_value(key, "R�Bdir"{��except KeyError� ��;All�on a 64-bit system� ��A�Wow6432Node\\�3�����6���� S�QNone B6if � #` = os.$.�Vjoin(5�5, ".��Qe�t�%if=�uisfile(*�)l��*�freturn���unpatched(msvc9_find_N�(\b def %�Vquery&��%� , arch='x86', *args, **kw ��Pr� "distutils.X�.`�" for support extrad0�"s.�Set environment without use ofO5�TKnown]�%edsc���� Visual C++ 9.0"�Cu�� 2.7 (x86, amd64Q�B��Windows SDK 6.1/�x64, ia3�>7.03��/10��7�S�ParameterG�ver: float���Required �T./��iY�=�aTargetitectureR�7� �%R: dic�# Try to T�+�eQFfromL�� (Classical way `orig =L�_l =����;�\V�uKe|4s.D\Platformq# Pass .�Y if Vis missinge���2pasV U� >=Pnot sf}executingP n��B# If�2, t�G�[�directly0� ~JEPInfo(C8")."�R_env(�QPlatformError as exc: �_augment_exception(exc, ver, arch)+�raise def msvc14_get_vc_env(plat_spec)]�1""":�Patched "distutils._>�compiler.E�" for support extraD�,�1s. �Set environ� without use of "vcvarsall.bat"5�TKnown]�5ed U�S�-�� Microsoft Visual C++ 14.0��L#� Build Tools 2015 (x86, x64]m\ >�`Studio5�75�:�/64<� }�H��Parameters��Q: str���aTarget'itecturemaReturn)�K� �a: dict�*# Try to T�+�i from � (Classical way 6tryr��K�B_unp(x )� errors.DPlatformE�o�q# Pass .�( V is missingb��8BpassB# If6�2, t�sdirectly>��E FInfo�, vc_min_ver=").5�?n����:qn_lib_ots(*args, **kw �E)geO�I1fix�� atibility between "numpy.O" an(N8� < 1.11.2G/ifX��in sys.modules5!im��Z!np��2if LegacyVers@np._� �[__) < �'�'9�D���6 np� .c{ 6 �C��J� w)B�/f���Dch='�NAdd details0the message�help guide $�2usea7�pwhat ac will resolve it.�o�!# p if MSV|ory not found or|��"se�=�.2[0]�D" in�.lower()X�""v^c!�8# Special:J����installed tm*pl = 'Microsoft Visual C++ {version:0.1f} is required.' �message = tmpl.format(**locals())*�sdownloadr�Twww.mv�T.com/�/details.aspx?id=%do�3if � == 9.0:`���if arch.lower().find('ia64') > -1/��3�p# For V�9.0, if IA64 support�needed, redirect userx�I�to Windows SDK 7.0%�/+= ' Get it with " D�6": ��i���H�mXi% 3138u�Oelse� � to Vc++ for Python 2.7 F�!Thion link3maintained by �.���# Contact vspm�@�0it s updatingG�Xfrom http://aka.ms/vcd�&27S*elU,10V#��( R�/ 1�� 1D� E8279m� �_>= 14� >4.0�Build Toolsb���(j �H� ��P��#r'landinghub.vastudio#7��',�`-cpp-b� -t�1') �exc.args = (�, ) class PlatBInfo1"""9�Current and Target Architectures in9�rations.m�Parameter:-�R��F: stAX���X��c�_cpu = safe_env.get('processor_@�d', '')�def __init__(self,,)��I��.G�! =�@�.replace('x64[�0amdRX�@property��f�t)��h�b�ureturn i�[ �_') + 1:]\�N�ois_x86Q� w��V'x86'F�DG�*�n/= H�1dir�, hidex86=False, x64 ���eRpt specific subfolderH�.� L��O-q���e: bool���q!''not '\x86' if architecture is x86. �x64: bool��� return '\x64' and not '\amd�if archiU��%. F�RB��-��subfolder: str��{�'\target', or '' (see hidex86 parameter)5�5""" ��(�R�@' ifG�lf.current_cpu == 'x86�a�i) else?�rD��F�?x64B�%s' % se�h�)9Bdef �P_dir(/�,�=False, x64 �%):?�rT? platform specific uPPsM���)�%T#�xyCx) C�w>�vWcrossu@forcqk C6�j:x�k�4Use#s  @even�'cr����'__ �i�,t���#'\�_C�N�6not,� 4if 3c�h.~�h� ,��).replace('\\', '\\%s_C�) class RegistryInfo� Mi oft Visual Studio related r:�0 incations �p_:�3: P�� ��"�" instance�HKEYS = (winreg.�j_USERS �qCURRENT(�'�LOCAL_MACHINE(�CLASSES_ROOT__init__:platform_infSo): � self.pi = platform_info !�@property�def visualstudio(<�K�1"""(��Z�Microsoft V2�! S3� root registry key.3�?�return '=�<�'�?sxs�!?SxS�os.path.joinm�. , 'SxS')�!vc4�,C++ VC7�)sxs, 'VC7�6"/VS�1S� c_for_pythol8Qfor P;�?r'DevDiv\VCFor>�nmO_sdk?SDK�';OSDKs�windows�W1�#/P � 3, '`�q_netfx�.NET Framework�=NETFXSDK�aPkits_0 Kits RootsrF>�\InstalledH� �},J, x86=False1RVvkey in h�Eware�.� PaEters-��key: str��;�R > where look>x86;�PForce� � �t���str: value�c�node64 = '' if .pi.current_is_x86() or�else 'Wow6432Node'V�rW "P'SoftT2', j�&, '/��(up?namPLook �sRistry. � Parameters ���-��key: str��(�Registry key path where look.*�Nname<�`Value � to find. 3�eReturn���`str: v@��5""" �KEY_READ = winreg.�#�@open�"�uOpenKey!�ms = self.microsoft�Pfor h>�"in#�eHKEYS: ��:try���b5�#= }�(D�, ms(key), 0, �)L�except (OSError, IO �)b�bif not�pi.current_is_x86(1����������o, True� �A�����/���continue ��Nelse���3��r_QQuery0Ex(�,I)[0]~��pass class SystemInfo�MZ Windows and Visual Studio related sD� inormations. *���r _i~� �� ��7"�" instancevc_ver: floaRequired ��C++ versionA���k�# Variable�properties in this / use originals CamelCase v?�O��;gs from�source fig��more easy comparais�`WinDirafe_env.get('�R', ''ProgramFT�9= s.��4�=x86e�7�(x86)', �) def __init__(), ", W=None�+�Z.ri =/�:� �p � �Zri.pi�X�# =a�2 orV__st_avail_/�(�)� �w�� �'�.I� k�fs()[-1QIndexl���� er7'No,u found' �:��2e distutils.e4s.D�Platformu�G(err�����#�j���Find all �� se�:�F�-ri vckeys = (self.ri.vc, �_for_python�Cs) �vc_vers = []�for hkey inL�eHKEYS:#��?��'�&�jvckeys��#�>try���b9�= winreg.OpenKey(u�, ms(key), 0,!�KEY_READ��E���except (OSError, IO �)x�continue��H� su�s, values, _ �QueryInfo��'��� i0brange(E����ver = float(PEnumV�(|�~, i)[0]��>���0if E�0not��/���%�.append(ver_�m�fW�Mpasse &t'8�%���"return sorted(!) B@property�def VSInstallDir(C1"""(���Microsoft Visual Studio directory.+�7�# Default path#�name = 'V�%0.1f' %4�=�dR�P= os.W�Q.join�.ProgramFilesx86, j����# Try to ge� from registry, if fail use i��d�~�_%blookup}��4Os, '�D) orQ�C$?C++ �.��guess_vc =o_�(�:��_legacy(T "V��P," f4 as �\ g_m �^ciN��3ri."rei�B, 'iFdir'<� fU�p, 'VC')1�d else ?bv/��� v6_vc�0if �isdir(path):  �"msg = 'Microsoft Visual C++ directory not found' <� raise distutils.errors.D�PlatformE�e(msg) @�return path�def _guess_vc(self):.�5""" �eLocate� for 2017!�-�0if K��.vc_ver <= 14.0Y������� default = r'VC\Tools\MSVC��` = os.�Q.join��.VSInstallDir, N�)�# Subdir with VC exact version as name/�:try�1vc_2���listdir(�U)[-1]A���� �.�(, R��except (OSD, IO �Andex ��g�BpassH q_legacy2�s prior toe Studio %0.1f\VC' %($<�ProgramFilesx86<�@property���WindowsSdkV� �7�D SDKsspecified $++�.r��yK9 ('7.0', '6.1�70a'lK�_== 10L�E�/7.E�1E�8�8E�2E��?8.1� > 0 ('��C8.1' OLast&5lasP_use_2�P_dir_,(A��2�Y1Sdko'lib')�?Dir60sdk6= 'N��"in�R P# Tryget it from registr����?locBri.w_sdk, 'v%s6ver�A��Hri.lookup(loc, 'iationfolder>�?��@� ���Ubreak!ifdo�!or� is�?�F�  "V�MtPython"(� from registry  �path = os. �.join(self.ri.vc_for_python, '%0.1f' % !�vc_ver) M�� install_base =(�ri.lookup(b�3, '%�Kdir'>�fA�:[��g�lsdkdir�P�u�, 'WinSDK[�sif not =�!or��bisdir(�)r� # If fail, use default new � �for ver in�WindowsSdkVersion[���0int2�=8�[:ver.rfind('.')]]��.��r� = r'Microsoft SDKs\i� Kits\%s(Z� \�D�d:ProgramFiles,�:�%if"1d,�_���IE = d�<1old�`��w� Q "\vM9verj��n�Hp O Platform" �2VCIdDir, 'C� JcreturnJ [�@property�Cdef SDKExecutablePathW71"""4��R>���% e@� directory.4�@�`# Find{� SDK NetFx Tools registryB�U name@�"if <= 11.0YRnetfx%35:���0arc8%''�Oelse>�%40(��>��hidex86 = True ��@2.0 R�V Fals��=�{�pi.current_@x64=R�#, b�=�Dfx =%-*!%d+%=� , h�.replace('\\', '-'))��# liste all possibles�cs�1reg�F = [ �\>= 14 �[ k�N+= [1ri.�P_sdk,f, fx)]� q�s�o�wq�P'v%sA<verz�2# Rdation folder from the more recent ���e�� execpath = self.ri.lookup(� , 'installationfolder') �pif exec/�:��$�Ubreak�ereturn/� �@property�def FSharpIy�@Dir(�)]�1""",��a�Microsoft Visual F# directory.'�3��� = r'%0.1f\Setup\F#' %evc_ver;�/�0os. �Q.join��+vt�studio, �����+� Vproductdir') or '' �UniversalCRTSdk8� CRT SDK # Set Kit Roots v� ions for specified MSVC++�&(if= >= 14.0��R� = ('10', '81JOelse.�)�A�a# Findh of the more recen����aver in� [�nsdkdirwindows_kits_r,Y����'1��0� %sN6ver�4��%{� ���)� LastVersio7( Runtime.Alast;5ion�Gr4P_use_2�_dir_name(0A���2�w�, 'lib')NetFxSdk�.NET Framework���i��85p('4.6.1?4.6 2��2 M  iloc = 5�ri.netfx_sdk,[  Qloc, YF� ��t_&;QDir32S a_32bit~qDefault0guess_fwRWinDir, r'�{�\�'5� # Try to get path from registry, if fail use default path �return self.ri.lookup(�vc, 'frameworkdir32') or guess_fw I�@property�Tdef F4�QDir64P�!):��x�5""" �Microsoft .NET9� 64bit directory.2�>�?# D��` = os.�Q.join�.WinDir, r'|��{�\�B64')���# Try to ge< from regidC��dVersion32�h 32hvD�sg&_find_dot_net_8�3(324 �*q��@�����o, bitsNUFind ? � PaEters�-���r�U: int��Platform number of�@: 32(/64 !# �bactual��5 inj�0reg/ = ver%d' %�)F�Pdir =3Aattr5, 'b/Di=� ve5��"or�_use_last_dir_name(f�B, 'v(''#SeR�0s fQ�pecified MSVC++ ��"ifu�!vc v>= 12.0��@(ver�F4.0' /elK��0K� 'v4.0.30319' ver.lower()[:2] != 'v4' else�,��� �_'v3.5� O== 9��E���2.0.50727S� �O== 8Q�/0'Q�kd �, prefix=''R�C�E@the X�e��E��Q'{!no�bfound.��`�K�Y: strU0irsm�Jthis�6�@only��s startings by E�� """  �matching_dirs = ( ��dir_name�Dfor � in reversed(os.listdir(path))7�`if os.�0.is$��Ajoin1�,W�i)) and?�r�.startswith(prefixg� �return next(�, None) or '' class EnvironmentInfo:z�1"""�RL�e$� variables specified Microsoft Visual C++ 1ionL�and platform : Lib, Include, Path�A lib( 4� This function is compatible v�9.0 to 14.0.H� Script created by analysingC��configuraz� fi�2lik"vcvars[...].bat", "SetEnv.Cmd�vcbuildtools"�#..�Parameters�-��arch: str��pTarget �itecture.�vc_ver: float��/�oRequir . If not set, autode\� the lasO�r�?minv�wMinimumND��\�5# VLroperties[tuse originals CamelCaseO��Xs fro�rsource �more easyMcraisondef __init__(self,w", k=A �2=0)1�y�0�s.pi = P�Q(%�r%�Registry%��+pi(�s(�fSystem&�!ri�Bver)�|�1if C�� <����)�err = 'No suit q found'a�?����2e distutils.errors.D��E�4(er�"@pyN��k�iH�!�h���V O�&�2�2si.c�)�0VST�qStudio 9�� ���P[r'Common7\IDE', �=�"']��@� !>= �I`_subdi�pi.current(hidex86=True, x64 �U�j��:+= �\�Extensions\{\TestWindow']� L�BTeam@\PerBance�7�$Q%s' %�1[Jsi.VSInstallDir, ��) for path in paths] @property�def VCIncludes(self):��,�5""" �Microsoft Visual C++ & �Foundation Class V�C�O�return [os.path.join�@.si.�stallDir, 'I�5'),K�����?�r'ATLMFC\G� Librari =W�� 0if y�.vc_ver >= 15.0��arch_subdir =/�pi.target_dir(x64=True)c�OelseE�{hidex86I���s = ['Lib%s' % �%, b�m����4�l�P+= [rn�m\storet�U�I�\�`) for �1 in� S~�?Ref� references =< 1�]�2LibM\�#')IOTool�6��$si%si!�te��[ � VCPackages��R@forc0 =  b<= 10.0 e Falsey��0pi.sOZ�O(if Y��� =Bin�� �/== �5= 'L�=��Rurren�c���g��+el�1hos� = (r'bin\HostX86�A��is_x86()���J�V64%s'�&�� N� Z�%R �p���]cpu !:cpu(�>���,��c�)] elsGe: �!tools += [os.path.join(si.VCInstallDir, 'Bin')] =�qreturn @��@property$�def OSLibraries(self)|�1"""'���Microsoft Windows SDK ;�(�4�0if R��.vc_ver <= 10.0`��X�arch_subdir =/�pi.target_dir(hidex86=True, x64 �)q��E�� self.si.�2Sdk%Lib%s' % {�5;els)���jlib = �Jlib'�0lib4C_sdk&�lib, '%sum�(L�,��oInclud!:�� V�i/�"')�Q ?�,�9'gl+ m�\>= 14��?sdk`� <�%''3��� =�%sshared�)),@��D���@�/um<�'Wwinrt?�qI0LibY(e Paths�P?refLReferencesgl�C = [��3 L<= 99�+C�?1I� ref, r'CommonConfiguration\Neutra ��l� �[O�����p� � =N�UnionMetadata'� F� d�}���'a.Found�.UniversalApiContract'@'1.0����O��',  �2), ��os.path.join(��(�>ref7���'Windows.Networking.Connectivity.WwanContract'D�01.0����"self.si.�oSdkDir{�ExtensionSDKs����Microsoft.VCLib(�%0.1f' % �_vc_vex�ReferenceM�PCommo;figuration�neutral�� @]return lib �@property�def SdkTools(�!):��5""" � pQ SDK 7�$�0�z�!stW�q._sdk_tg�"))��|��~�# �s generator�(ifv < 15.0���bin_dir = 'Bin' 3�= 11.0 else r#�U\x86'n��C�iyield g�� m��<�bif not�pi.current_is_x86(�-�arch_sub�d�4�dir(x64=True)��+� %sI� )���S� �� == 10.0 or��1qpi.targe�'� 3�� 4qhidex868/, B NETFX 4.0%SC$el>/>=��/ =}�'" = Psdkve4P pLastVeru[ ��R, '%sB(V�', �3�o�DKExecutablePath � 4�m!v @� 9�OucrtEZ`('%s\\ucrtver) if uc rtver else '' @property�def SdkSetup(self):��*�5""" �Microsoft Windows SDK 7�$�0�0if N�@.vc_�V> 9.0Z��^�return []��os.path.join�C.si.x�SdkDir, '|�#')?��qFxTools@���.NET Framework :��Bpi =�%pi!�s�&si� \<= 10include32 = TrueS���64 = not pi.target_is_x86() and�fcurren�K�� {Y�v�U�� ork�P� �4pi.,��cpu == 'amd64' I�� �'t = �Z���5if � �-�J+= [$%i.Dir32, ver)�U��0for�W in s9�Version32]8��/64�!/64�(&64�-�;NetFxSDKLibrarie'et�B� `< 14.0�2si.� 9�arch_subdir]dir(x64=F� 0elf*|�, r'lib\um%s' % k�:@�2DKIH'A�GS_?\umB_VsTDb@Visual Studio Team System DatabasK� VSInstall�r'VSTSDB\Deploy�MSBuild�+�o Engin� < 12�.el7�57��_si.ProgramFilesx869�2�{�(hidex86=True) else: ��base_path = self.si.VSInstallDir-�arch_subdir = '' �B� r'MSBuild\%0.1f\bin%s' % (\�vc_ver, H�)C�b8�p = [os.O�e.join(� , �&)]t�"if�V� >= 15.0�# Add Roslyn C# & Visual Basic Compile��+� 2, 'W�'�qreturn C��@property�def HTMLHelpWorkshop)�1""",��Microsoft6� 7� 8�%�1� L< 11�[K� {si.ProgramFilesx86, '� ��UCRTLibraries� Universal C Runtime SDK G��4�pi.target_dir(x64=Trueolib = ,�CRTSdkDir, 'lib'>�`ucrtveAa_�U�lib, '%s1�V� � RoInclud-F�� i�Y4�]9'�=� |6+�Bion C=;si.SLastVersionA��`('%s\\�F�S) if �_FSharD%F#�� z1.0 and? 12�2si.���#VC8oRedist�SC++ rvr?�ribuable dllq���E 5�`�{� C��'��$vc�2= '<�%s\\Microsoft.VC%d0.CRT\\vcruntime�cdll' �Uelse:���+redist_path = self.si.VCInstallDir.replace('\\Tools', '\\R9�)')N�z� = 'onecore%s\\Microsoft.� L�# Visual Studio 2017 is still�C++ 14.07�dll_ver =�2 if�"vc�P= 15 � >�� ��% (arch_subdir,;�#, q�return os.Rg.join(c%, Y�)y�Bdef 5�P_env(, exists=True)5"""�Rh�environment dict.U��Parameters5�-��j�e: bool��?�0It �c, only��@ing �%s.1��Qenv =�( ��Q�include=�q._buildv3s('�)',1��5��[D��S�s8�2OSI�8�OUCRT:�#NetFxSDK>�]�)/�?libE?libA=Librarier/OS5� !Fx5 ��hh� e;�fb�f��j��n#�:�r=5�VCStoreRef9���;�7�?�B�<��96:;/VS2�OsTDbb�?Sdkc�SdkSetupf� self.MSBuild, �self.HTMLHelpWorkshop;�FSharp]2�vexists),�)�1if �vc_ver >= 14 and os.path.isfile(%�VCRuntimeRedist):G���env['py_vcr&�!_r'�B'] =e� @�>�return env �`def _bL_�s~�, name, spec� _l�#, ��1"""G���qGiven a]�ironment variableR���U�aified q�*�a�ep-separated string of� containing~�`unique� tant, directories from those@��v��>�0the �q. Raise�rror if noF�=�are resolved.�# flattenS.��ks = itertools.chain.�_��J(+�a5envC�safe_env.get('').split(q6sep=�|�n� s,"a�7� exo�0 = (t(filterf�r.isdir,4 ))BG4 el_(t V�m�emsg = "%s�  is empty" %rv.upper(��D�r�Wputils.eas.Dist�PlatformE�F(msg?�f�_�everseen(�;�rz|c.join(=�)#Python docs /�l���,1�, key=None1RList D�@ eles, preservcFrderRemember all1� ~� �.��U 'AAAABBBCCD�') --> A B C D9� BBCcAD',j.lower<��p������t��A_add�aen.addK�=� if-�2�0 f4for�B in @falsSen.__6s__~t�a����(m����Tyieldm����  %��Q�0k =�r���@ not���C��G����;.(k�� � �c_boot(import sy�o�PYTHONPATH =0env'�'{�2if �PATH is None$ or (sys.platform == 'win32' and not PYTHONPATH): ��Q = []�Oelse"�/�.split(os.pathsep) =�pic = getattr�0, '"�_importer_cache', {})2�0std!�1 = �ath[len(k�"):�mydir = t�.dirname(__file__�for item in \��"if�2== O�!or�1�&��continue # skip if current dir. on Windows,`my own�aectory��I�� = pic.get(n��!�%f $�!is�7Non�%�Ploade�+�.find_module('site'S��2�3if 5�U��'� # This should actually re=�E the�l���=����(�0er.�� �+�UbreakA� h� �:try����#�PAvoid �ort loopPython 3[��8���stream, ac, descC>�0, []Fexcept I^Error�+ �2if ~�N is ��8�.?imp�,� ! �0fin��z.close(4� XraiseK0("Cv@n't nRreal  r"`known_�s = dict([(make�T[1], 1) �Path])@2.2 compPoldpoN� �__egginsert', 09�save old �ion position�8�@ = 0p��~Qreset�A2one��n0add2dir�6� l� +=��� # restore effecti���d, nd = >)#[0�Q_at =6�1new+������Xp, npg��a�!if �=��)v�4# We've hiNfirst 'system' entry, so added�ies go here��{���o� = s� �8in }�a� �J�s.append�t��� ��R# new�Qafter-� point, back-�it n�ew_path.insert(�_at, item) ��a += 1 �@sys.A�s[:] = nO� if __name__ == 'site':4�r__boot(]�Bdel � import pkg_resources try7�pversionR� &�.get_distribution('setuptools').9� except E�?ionY�'unknown'�unicodedata�sys from g�.extern �six # HFS Plus uses decomposed UTF-8 def�(J)�if isinstance��, six.text_type(��wreturn �.normalize('NFD', [�Q�;���! =�.�de('utf-8'$�_�2��]�0.en> V�UZRError�=�ss # Not%����S�! 7filesys_���1"""�Ensure that the given�" iAded,+�NONE when no expected �ing works)��\� � ��7fs_enc = @3get�4tems�c() or q�candidates = A�,!�"�0for�F in -�Y  T6enc  De �G�continue0try�@ode(0ng,��� od`into a funcal routine � \�_� �E} �A�PNone @File` globb� utility. Mostly a copy of `$�!` Python 3.5. Changes include: * `yield-� ` and PEP3102 `*` removed.)�bytes` cE�`d to `abinary`)�qHidden / are not ignorJ���$os �$re �fnmatchD.sixy�q __allu ["�T", "i �escape"]���Q, recursive=FalsB"""R`a listY�!s ��a�E�� ��Y.:4The�P may }ain simple shell-style wildcards a la". However, unlike ,[�w�ps start�Rwith @�1dotwspecial caa�ed by '*'1'?'~�0pat�s�&If �Qtrue,)�P '**'�lA any�sW�S�@zero)�more directorie!�G sub�.1��""" return list(iglob(pathname, recursive= �)) def ,�$False): """Return an iterator which yields the s�s matching a���� �atern. O�T,��� may contain simple shell-style wildcards a la>�!fnb�. However, unlike �`, filew�ps start�Rwith @�dot are special case�a�2not�ed by '*' and '?'~�0pat�s�&If_ is true, �)�P '**'�lV�A any�sW�S�zero or more directorie!�G sub�.1�1"""�oit = _)%����5_is&�s = next(it) # skip empty stringW��*�passert 2s�r%#it^�Y0dirQ, bas` = os.If.split�a�!ifn�has_magic�P���%ifN���\�lexists?��*����F~���JelseW�3# PF endm slash shouldHonlyW��[�%if�cisdir(�'����U�*C��i  s�for x in Z2� /��x���8 U�1U�"�4# `92)` ��e argument itself aR` if it"p# drive1UNCp. PrevA��tnfinite onC�a7��#�gic characters (i.e. r'\\?\C:') if%�1 !=� ���|0dirv �� 4�[.�]�6if h��E"�<_in_dir =Jm�.�1.� �&�0&��\������P�ufFjoin3��P��T# These 2 helper functions non-y!lyp insideWl�1y. L�y#�Fst os. `glob1` accepts `a pattern while `glob0` # takes a literal basename (so it only has to check for its existence). def glob1(dirA�,s��): if not d���isinstance(�, binary_typeA��-���B� = os.curdir.encode('ASCII')q��,�Felsek���>��.�6try)���sa�tlistdir�[�except OSError8�return []S���fnmatch.filter(\�;0e�,�<q�# `os.path.split()` w�s an emptyM��,��s ending with a��#ectory separator. 'q*x/' should �1dir/�Eies.F� if�h�8.is;��m��$ [�4 K� leo$s(�Ojoin0�1�a���e��'] # This helper function recursively yields relativehv inside> B.2��assert _isq�j|��r��2[:0&for x in _re;�x�R�".n�[�7if ��/, \Oos.e �x���� L� �. x) ! x^��:��b�y�C�<�"���p� �x, y) magic_c= re.compile('([*?[])')$�P_byte*�b+� Ahas_Y�#(s� s9!= =��r�.search(s�O6�� 0�)�!isgCNone]`� ��g�&� == b'**' �*�)�?QescapECA"""E� all special character_1"""o�!# -��is done by wrapp�any of "*?[" betwePen square brackets. # Metacharacters do not work in the drive part and shouldn't be escapedM�)�, pathname = os.�a.split�(���)�if isinstance��, binary_type):*���<� = magic_check_bytes.sub(br'[\1]'�g�OelseG� A�@�creturn +� # EASY-INSTALL-DEV-SCRIPT: %(spec)r,%(script_�r __requires__ =(� __import__('pkg_resources').2�(U�) __fileB�@dev_)r with open("�b) as f�exec(compile(f.read(), +�0, '"�')) MZ�����������@�� ���� !L!This program canc`be runeDOS mode. $Z�Sؠ2�QՋ�2}82`*�1;�1-�?2RichD�W� �PE��L�Q��  �����N�&�������@ �@�����2�@5q�����)��8��=���6�u��4��(� �'I��!��R�.text�������1� ��`.rdata��h �W"���%��x�"@.'�0�+P��(���-QD$P@uSUV+WD-jPx ��33ۉD$�"p~W L$ <\uG <"u~Wj\V<�� 3\F3T.�CF;|Å~+�V+�!D$_"F�^][YÁ ��A�3ĉ$��V$��W�*τtd$�A</uA\u$ ��P$��QT$RD$PW � |$����|$ \���9�1Q9�4�L$QV^ ��D$ :+€| \D u H8\t�T$ ;r ���Quj�W�L� $��R ��jh�� �� �$,��PV �4(&�A��$�ЋWV �� $��_^3 �� ���@SUVW|$ǍP@u+jP��l$(3ۉD$]�8P\$ �� tOGQ �uGL$tgRm-�0t|$�tLD$<\uC<"uu39D$D$�D$tSj\VA^� 3ۀ|$�tL$F �At(���L$(,� T$�E�E�F4t7R Q���GGP� u?�6D$_^][_^] �@ |$�u� A�t j�P�@��hX3jDPD$ � D$D$D$PD$ ����f� jh0@�D$D���@�D$\L$QT$Rj���Pj� @�uh@�#��@PR�3XËT$L$ jR �0Z�L$$PQF�h@�븋$8�33I� p\$+¹�;ٍp~-$�D$x�"@u+A;ˍt|ދ|$jV-��Wh@�U{ ��ǃ`� ދ~:L$R/h@�PI2�L$$ P�+F;||_^][��A�3ĉ$��$ ��h���L$Qj�@�D$�DT$;vI�8.t ��HL$;w�3�H0HQ(@� ,@�0� HVPD$j�P袴��u4�ph@�N� )q F^�P3, ��"W�$ ��RV4��V,��C��$ �4�@;st t uj�G�0hn!X {�pt3 �p@� �$��  �~�$$��$(V@T$R$"��P0L$$QVD$('|$ u Vh@����S\$ U$,��+D$@ /Wt$F/ ;~T$ P##�@G�1|�! �:��P~TPPX�5�|惼$4���][tEL$t$ QV贤$@Vh̋# s��0 _9�%s�@D$RPQP( $�@_?4�P A� A�jPQ �j h@���3u3];;u b������VVVVV�����39u ,�8tԉ]S��YuC @uwSQ��Yttȃ *A�A�A$u)+�+��)�)�@$t�P�M9uu#Ss ��EPVu S��ESWh E ���E��uL�ø�A�á;A�Vj^u���;}ƣ��e ��YY+pujV5�)�jX^3ҹX�00�  n|j^3ҹA�W�#@;tB1 BpA�|_3^#��=0 A��t!��5l� !��YËUVu�A�;r"<`A�w+Q%��N ���Y V@�^]ËUE}P$��E H 0�]ËE P3�2��A�;r=q�` +I�r#��Y]<�D@�<�ME }4��/�-Qe�VEPu uw$�� u9Et��t ��M^�VT$ L$ti3D$u���r=*A��t%��Wr1كt +шuʃtt (�uD$_ËD$�#̋L$ W���VSًt$���|$u ���'L�t+t/*�uuat'�t7uD$[^_Y�$tE�b����"uE�t�bu[^�%t~Ѓ3‹�t܄t,t���t ��uĉ��� �13V� 3X�R 3d�uw�uuuu jsP%��8QQS3VW]9]t}M ;u9]uq9]tj9]�0u`�`tY9]�0 uO�, tH9]$u>9](u>u3@8tHF;w>:u5;t}���jujQU&�pFu>�E������;tP�:]8tUP&��YtF</t <\t <.uu~F8u;t%9]t+E9Ev}Pw�Qu} E;tE;tJ;ErE9]t8�4 vE8�28�9]$���+u9u(v#Vu[2$"�P���E��+u9u wfE ;tWvl��u�B9]�� �$�(�0J�puj^S�P09*9]uj"YVZ`u$#�0EM�3_^[ɘpMɸ#QuM�#QMu �E Qu($]; A�u<:VF �uce2��FHlHhN; pA�t A�Hpu�/��F;A�tF �@t'H�F@puHpF  @F^]� PMfE���~EPj 4"` 5MH}�tMap3=$A��uE `A�A]j�N�cYYS S39] uD��S����w�ME;tVEEEPSu EPEEB5� B5�MxE(�S4��YY|S]u3���Wru{vnM EtR:QuMPt<:Qu7Pt&:Qu!Pt:Qu E9}r?@IF@I<@I2@I(n�t:u@AE9]r3_[� +W��W$@[ @��Ӂ`��wt_m@6�(�4��5A�-��h1SЃ )�RhD@�N��th4@�P(@cu+��Yu,@��j"��Yj? �UV tЃ;ur^]�u3ut$�4 r$�=+A��th��E8��Yt u�Y7��h`@�hH@�YYuBhY@�6��@@�$D!�pc=W�@Yth �27X� j�jj��3]jh@���j>�4e�3C98 A����4 A�E0 A�} ����5+A�0,��Y}؅tx5��$u܉}uu;rW+��9t;rJ6+��+��U��M�+�� 9}u9EtT�`}؉Eb�}hp@�dp_Yhx�t�O�E���}�u(�jl��Yu3C�`tjS�b��@j�j�)�s @j�j�� j)�"�0j�#�V*��VY;��V:� w� �� 8� 57� p#@�E*r$A�^�у=D A�u3��1��h���'3`]jXh0��3uEP4@�j_}MZ��f9��@�u8<�@� �PE��u' � �t�@�v39�@�Mu3CS?u`ujX-��ujG�W4��] �}j&Y0@�HQ>��< A�=&�0�&�3;� YS�p;tP�:��]tMj YQPVh�4E9uuPE}5E MPQ5��YYËeE܉E}�uP3�C!ZE3@*�����>��xVS��Pk*�| ;u<!�@;u`3@ A�F ��uNSW<H8?����u S ��YuFjFXFF ?~>^^N ��3_@[3^Ѓ}�t'Vu F X�BtV��f f�&�f�Y^]A @ty�t$Ix  QP-��YYu MEM 赹@>t`$#,G @SVt2�u,E+M}C>u��8*uϰ?dQ�s}�^[�x��A�3ʼnES] VW}u� �!������u5M����\P�0L�t `p ��F @u^V@ ��YA�ttȃ *A�A$ut(�ȃ&� @$g3;]غ�!� ��C!�@� ��, <XwX@�333x@�jY; ��$ 3@�:@u�;SMeMv ��ƒ tJt6t%HHtW ��0�5K �5? �q3 ��$�e���$�� ��*u,p;��� ��k ʍDЉ�����*u&;��� �1Q�� �Q���!{F�ItUhtDltwc�����T'�S;luC�`��Ĉ�9i��*�5- � !��<6u{4uC;�;�a��<3!�2!�G�C\�!�@d�@i�@o�@u�@x�PXPP=��YYt"(� �rCw�"�M��ƒd��y��S�����AtHHtXHHtHH�� Dž����_!@9�H��Dž�����'0���(��#u �� ҃uH�S@ |���;u A��� DžM��0�X��HHty+'��c�t0GPh� �@PK;��tDž*aG)�(��z�9��u5��;t;H;t4��P��wt+� 2��u���P8��YAp �Ae� g4itqnt(o���c���tau��U7�:8��/7�` t fRf �& aBc�Q ����@� W��ugueO�J1Y9[1~�=q���~?с]��V" ��Yt0}2 Y��?� 3@�PGm Ac�!PG�2�SP5XA�A ��YЋPb"t 5#u@S5d/�/�@YYbXgu;%�`%�!T�sYY;-u`��C$bS���$s `�"�+'�`i!�Qƅ0b�PE�KZ�r t@tG=`G�f3%�;|;s؃�� ��ڋu3ۃ2�} �!  u!�Au0U@�1t-RPSW7��09!a~NN뽍E+F��=� tat΀90tV�0@>If90t@@;u+A(I8�t,�,�i� e@�\'@t2���t T- �r+ t�! �6  + + Q udSj p &�$�vYt �*uWSj0. �tf~b �PjEPFPF5��u(9�@t �`�M>��Yuz�Pb�P*�Y�$�|�t� "�I����@t �p�� ��Yt�A� `pM_^3[Ð+@�)@�G)@�)@�)@�)@�B*@�p+@�jThX@�e��3}EP4@�Ej@j ^Vy��YY;��*A�5*A����0@�@ x@$�@% @& x8@4�@ *A����;rf9} ��E\����8X;E�)�|E���[j@j �tVM �*A� 7�6*ƒ�`�`$Ɠ�D`8��;rE9=@�Q| �.e�~mEtVtQtKu Q@@�t<u4��9��Fh��F P*� ���FECE9}|3ۋB�5A�,t tNrFujX HP<@�tCt?W�@4>%Y@uF�@ uN�")� t7F N@Cg8@�33@Ëe)c��ËUEV3;u��V�����Eq@^]2�SP A��(��A�3ʼnE�SjLj�P�@( �0Q ,�  9 0� �f�!�F0fAf�!EMDžj�p��M� 1IǕ�Q�ǭ��X@�j�T@��APPI�u ujM2��YhB�L@�PH M i 55*��Yt]j?�a]&�E3;A�tA-rHwj X]Ë} DY;#]��u@A�Ã�D� VMQY0^]h�8@�d5�D$l$l$+SVW�1E3PeuE^EEd8�pËMd �Y__^[]Q\���ЃS] Vs35FWE�E0{V N3 8N F��E@fDMUS[ EMt_I�[LDE�Et1��E|@GE؃u΀}�t$�&s�AN V�0:�"E�@E�ɋM9csmu)=*A��t h�0!ZtUjR�M '1��E 9X thRӋ*�lMH �"��EH0��#9S RW�0�� � VW3u%k�Yu'9T A�vV$b��;��uʋ_^(]ËUVW3j�u uE�� u'9T A�vV$@���;��uË_^L�J� [1J�YYu,9E tN�N�Q� %3Q��O,9ER�R�+j hx@�utu=*A�uCj��Ye�V73��YEt VPX�'YE ���}�u7u j��YVj�5t)A�`@�uk� \@�PYjh�E3ۉ]jI�]j_};=;A�}W+A�9tD�@ tP=�tE|('�ы PD@��4Y�dG� ���E�@7�RSVuF Ȁ3ۀu@��t9FW>+~,WPVaYPD�� ;uF yF N _Ff�^[52u V5���Y/V|YtF �@��tVP[E��YY3^]jhO3}}jD�}3u;5QR��s98t^QVPVYY3BU,H t/9UuPJ�tE9}u/�u E܉}���F3uO�a4V"e�ÁQEtEw 0 PjX�0ËX A�<LA�uHA�8h��0}!��Y=� F$|3@_^Ã$*��3S V>�W>t~t WW&�YhA�|*�0_�*�VuP �2^[N`E4W�@�]j h ZG}39+u��j��h���PQu4�9tnj Y;u� ���PQj Y.q]9u, BWt PuW<�%6�] >W� 3 (|UEV�>�uP"�ujDY6@� h�@�dM3;v.jX3;E @u�W�3���M u;u3F3(Twi Ku E;p*A�w7jL�0}"H6�_];tuWSu� ;uaVjd@�;uL9=)A�t3V��YrE;P�0Eu jY;u (�"t"U}}M f$����ffG� �0�@�P�`�p���IuЋ}]W�W�E3+� u<MуU;t+QPs�EUtEE+‰E3}ME.߃}�@M�MU+Rj�Q~L���@j h @`[f(E���#E��=��t =��33@Ëee��Bba3SEEESX5�� �PZ+tQ3�]UMr�UE[E���t\t3@3[*A�3ËUQSVu3W;t9] w EjYSSSSS���E3;t�:tj_9} ���F:FM;t@8t<}U G};syF@8uPQ@���YY</t<\t G;} sV\F}E;t G;} s>F@8uE;t':t!.t:�S.F.�%.��� vEhj"3_^[ %uME MUTu}�tM���A#EVt3@}�tMapS�jj�uu xB]l��Pj�[��uuu u?��5�(��"A� � � � 5�="A�f�! �!�!�!%�-"A�"A�E��"A�E��"A����!A�!A� �!����A� �X@�!A�j$��Yj�T@�h@�P@�=!�p�uj$�h\�L@�PH@�-��t"t t Hzø��ø�  � �FVWh��3FWP3ȋ~~~  ~hA� F+ο��@Ou����@Nu_^C�+3ʼnESWPvh@�������3@;rƅ� t.�;w+@P �`j R81 CCuj�v vPWI�Pjj�yE��3SvW�Wv SZC_D!�!�@h��Z�1S5%�$6 Eg�tLW�pt� �`/AƄ ���2VFDž3) � �06� ЍZ w Lр w�v р ��A;r‹M_3[j h@@� ��A�Gptl�twhuj nYj Ye�whu;5A�t6tVp@�u)tVYA�Gh.�uVl@�E���뎋uj Y7pS3Srt$A�u �����x@�8]tE[x<u#�t@�ۃuE@� <�E`p 0] Wd3};u2��u39A�� E0=���r��p�� � d*`P|:R��EPW�A3��$CVPX3B {s 9U���}����uŠF�G�M k0u>u*Ft(>EA�D;FG;v}FF>�uыuE}urlj{CVgjC CA�Zf1Af0A@@JuL@;vFF~�4C���@IuCC Ss}2ȋ{@95$X^3[jh`@�M��}_huuE;CW��h ��Y؅F�����wh#�SuYYE���uvhp@�uFh=hA�tPcY^hS=l@�Fp���A����j tYe�C$A�C$A�C $A�3E}fLCf E$A�@3E=��} LA�@3E=���}��A�@5A�p�tA�=�  �SE���0j Y%u 6�0St6��,�e�E~Ã=+A��ujVY����3ËUSVu�W;to=HA�th���;t^9uZ�9uP6�A��YY!�!�5!� P�&�@9�9�D9u@���-���P������+P��uM��@� j���=A�t9�uP?��7Ct�~PE���A�t;t 9uP%�9_tG��MuVY_^[]I5l@�W}W֋�PtP ��> ��� ��� �%_�{�3 �{�t C�È�0֋�S�6P֏������SV5-�f ^[_]Åt7t3V0;t(W8tVE>�Yu@VY^3j h@�_,��A�Fpt"~l�t�pluj ]rj Fl=pA�ipPj }Y2uV5A�5Tօt!A�tP� Ѕt��'t@�V @ V>�хthd@�P(�tuЉEE^]j�{�{�QY{�{� @��x�@�u5%A�e�%!�!�5^PP5*�;*�@Ѓ , C�2P@� �j hK:@V�EuF\@�3G~t$M M@Ӊ~h�0u��~pƆ���CƆK��CFhCAj n@e�S� >���j M!�}E Flu:FlvlV���3Guj 5%�|, �pVW\F5@bNh��jYYt:V*�05Si`j�V?@YON V^Y3W@�_^ËVV�A`^jhzuC@F$RM�2F,��4�YF<tPYF@tP�D��H��`\=@�-��j Ye�~htWp@�uhA�tW-�EW���j 9�"E���~lt#WY;=pA�tA�t ?�uWYE�p���V'X�E�uj vY �2 j �VWt@�V �PVc� ^��5(@�h@�Wh� %A�h � � � � ="��5@�%A�t=)�P�t =%��tu$"���p@�9�`O@�5&�<�0%��A����54�Pօ���5?�0 ��!��!�P���M 5��m�tehQ@�Q�=YУ� tHh��jYYt4V5 ��" 3�tj�V�Y@�N3@3_^ËUSuM]C=���wE苀���Xu]}EPE%���P��YYtEjE]E�Y 3Ɉ]E�AEjppEPQEPEjP~6�� u8EtE`p3E#E }�tMap[Ë�$QVu VsE F Yu4� ���N /��@t �"���S3ۨt^NFM�F ^] ��u,l ;t ` �@;u u ��YuV@��YF ��W^� F>HN+I;N~WP;�\<+�� EM F yM tt*A�A�@ tjSSQ>��#ƒt%FM3GWEPo�$*o�S9}t ($4_[^dQS]VW33};  G}rw��j�b4��u =A���Q A��hp@���S %A�W8�Pt V�0( h��9%A�Vj�=&A��B&hX@�hNB�@3P�"D�V��@Y<v8V��;j4(A�hT@�+QPV7�pt3�2VMC�3hP@�SWp �)$�E4ŌA%�K%�%�h �h(@�W8>o� 2j<@�;t$tj�* 4P�6%��YP6S@�_^[j^?��YtjQ �Cux0uhs`)hrYY�QSVW5+A�¨+A�}jP;$+ߍCrwW5?��CY;sH���;s;rPusi�uG;r@�]�t1P4Y�uV��PEY[Vjj �@V& B�.�ujX^Ã&�3^j h@�a&�l� 4E�:E}o'�,�YH]ËV@��W;stЃ;rd0V&��� &�Ѓ;r_^Ë:VW3@A�6Y(r_^̋UMMZ��f9t3]ËA<8PE��u3ҹ �H‹]�@�-EH<ASVq3WDv} H ;r X;r B(;r3_^[O��jh@�h�8@�d����PSVWA�1E3PEd�`eE �h��@�*tUE-�P�P�t;@$ЃEMd G�Y_^[]ËE3=���!Ëm��0�.32�jh0@�S @xte�3@B�<��lh=[@�'Y4(A�XQQV`F��V\tA�W}S99tk ;rk ;s99u3t X]u3���u `�3@������N`MM N`H��� hA�=lA�;}$k ~\d9�=hA�lA�B߃ ;|]�~d=��u Fd���^=��u Fd���N=��u Fd���>=0�0�4.=��4=��0=�Fd���vdjY~d`�QӋEYF`[_^`E8(A�<�@�UD(A�]� mV9Ptk u ;rk M^;s�7 5D�Yj hP 8F3}}؋] LtjY+t"+t+td+uDs}؅ua��8(A��`w\]ZÃt<t+Ht����3P�0@뮾��0��0 ��@EoJEY3}���9Euj9EtPY3Et tuO`MԉG`u@OdMGdj2u.NQM܋ Q]9M}MYW\DE~#F� wdSUY]}؃}�tj�T߃� �CEԖ�EЉGd3)L*X�\�@jhpAiu u@�E/=��E3=@00}�uj@�e��YE[�`o� 5 �|Ytq� �`3@]Á(�E�8csmu*xu$@= t=!�0="�=�@uC3]�h_@�T@�3Ë@`9=+A�'�%5+A�ub@�< wt.t$<"u 3ɅP�FF< wFu_^ÃY��Z�V5< A�W3u���<=tGV��Yt?�jGW!.YY= A�tB�SBVS��C>=Yt1jSYYtNVSP}.�� J)!)>�u� A%��'�+A�apY[_^5�!~&�� �a�QMS3VU 8�P9Et &EE>"u39E"FE<tBU PFQ} �t M E FU Mt2}�u t utB�e�>����< t< uFN�D���}�t EE3C3FA>\t>"u&u}�t F8"u 339EEtI}�\BuU tU=�#u< tK< tGt=Pt#Yt M E FM  �C #� FU FVt�BU 1�E^[t �ËU S3VW9+A�ueh��h(A�VSl)A�@�+A�5( A�;tE8uuUEPSS} E =?sJMsB;r6P$Y;t)UEPWV}� H r� A�3_^[�Pp)A�� V5@�W33;u.֋;t "����#\@�xu jX�"B����;u;�u3���f9t@@f9u�5@�SSS+S@PWSSE։E;t/PJYE;t!SSuPuWSSօu uYY]]W@�\t;u@�;r8t @8u@8u+@PEY;u V@�EuVW+�� V^�739Ej�h���P@�t)A�u]3@*A�]"A�e9SWN@��;t t УA�`V0t�u3u@�3��pEP(�E3E3;uO@ u 5|�@։5a�$^_�u� ���3]V3;|;*A�rV�#� 3ȃ *A�D@^]�39x)A��L$���t$tN�u����$�'~Ѓ3ƒ�tAt2t$���t���t͍Af�e+ÍA � � �SVu 3W};u;vE;t3�vcj^S�Q0ЋVuM㷌9X���fE �;v6;t;v WSV訳<�@ Б*����8]tMap�;t2;w,j"~�n~�a8]y`pm�0�$�%$�M QSWVjMQS] p@�;t9] ^3�M;tpzDpg�p_�!Ѳ� O:��2j�uuu u| �-0u 9 EM���A%���/e�U�%YY]VD$ u(L$D$ 3؋D$d$ȋ�Gȋ\$T$ $�N ud$ȋD$r;T$ wr;D$v N+D$T$3+D$T$ ؃�ʋӋًȋ^�%*A��QSVWT�L$URPQQhi@�d5?3ĉD$d%�4D$0XL$,3p t;T$4t;v.4v\ H {�uh��C1��C1��dgp_^[ A����t3D$H3*Uhp pp> ]D$T$���UL$)qqq()��UVWS33333[_^]Ëj_0��� 33USVWj�j�hWj@�QQ��_^[]Ul$RQt$��j h@�e�u;5p*A�w"jdYe�Va ��YEE ���E)j_YËUVu���SW=d@�=t)A��u!joh���轶YY*A�ut3@Pu VSYuuFVj�5t)A�׋؅u.j ^9)A�tuBYtu{00_[V'�� �Qp^]jh]uu ���u u SY��=*A���3}��j"q}S6L;���r IVSP�� t]5V .�;t'CH;rPSu:$��S��ESP >�9}uH;u3Fu .Su VW0pd@�ET� T�#��Su�$.���}�u1�U�4Sj�W�@�u ]jH}���9=)A�t,VP9}ul\@�PY_<�*+%�"th!q�V�RuV9 B4V;i�tvV+�6 c|u�nYҋ M S3;v(j3X;EsS��0k3AMVW9]t u)��YV � YYt;s+Vj�SȬA�1 {� h*A�l*A�kU+P ���r ;r3]MAVu W+y i��DCVMIM��S1UVUU] utJ?vj?ZK;KuB��� sL!\D u#M!J���� u�Y] S[MMZU ZRSMv�]]���+u]j?u K^;vM6� M;v;t^M q;qu;�� s!tDLu!�a1K�����!qF�bIN � INu ]}�u;,*M ыYN^qNqN;Nu`LML s%}�uWqM  �^qDD )%�AJ�&�`YJ�Aꍄ� ED0E���|)A�ء� |*A�5@�h�@��H ���SQ֋ �3�\�1 P�2@�0X�b@HC!�HyC�u `�`xueAp �6pH`H��Pk +ȍLQHQP+��E +� ;,�avm t�0E� =�[_^áx*A�V5GW3;u4kP5f�&�;u3x6�6�'�Ak0�hA��j5t)A�d@�F;tjh� ��h���W@�F ;uvW5t)A�`@�뛃N>~h*A�F_^ËUQQMASVqW3C}i��0D��j?EZ@@Jujh���y h���2u����p��U;wC+ GAH����@�Pǀ����h�RIuˋUE��O HAJ HAdD�3G���FCENCu x���!P_^[ËU  SVuW} +Q i zD��MOI;|9M]U��E��;;��MIM?vj?YM_;_uC��� sML!\D u&M!ML!�@ u �YO_ �+yM+M}����}M OL1?vj?_]][@�"]YKYKY;YuWLML s}�uϻ��� DD �GO�PY�1O# U MD2LU FBD2<��38��/H] )uNK\3uN] K�^E� u��O;OuB� stSp\Du#PNL� m ] pwqwOquu�q�pM yK!{`KYK;KWPMW �@}W!οWaM 9WW ���yWNWED3@!,Mkl*A�MSI VW} M 3U t@S;#U# u ];r;uY�$�r;u[ {�:�S;u1:� �#r;u؉]u3 ��S:YKC8t�CUty`|D#M�u)e��THD9��E���nLD3#uY�#Mj _G}MT +MЉM~j?^;J;Ju\ @}&F|8Ӊ]#\D\Du3M]! ,O'�!M.�!]u ]M!K]}�JzyJz0pJzQ!�BQ�0^L L}#} �u {v ;q |D)#�4 N0 {�1N� 7Mt LpMu L2uy>u;|)A�uM; |*A�u%��WVB�W3;uQW�p����ٽ BF t7VV(��VOP'��}F;t PnY~~ _^[]j h@�3M3u3;;uν~���2WV� F @t M�E6V c�`}V* �EE���Ջ#uVYYËU��8*��A�3ʼnEE V348�09uu3��;u'D0*V�V����貼��SW}4*A�NJX$('tu0Mu&ۼ30迼k�Gk� C��@ tjj�j�uc�� �>Y��D��@l39HP4 @�`��39�tP��@�.A�P3<0EB��D'g�� �3 m�ǃx8�tP4UM`8�jEPKP�@t:t��+M3@;�,�@SP<( ��C�ajS%�7P$���3PPjMQjI�@QP>�0�\��j�� PV� �49Q)��{� I@9! ]���W��T�(jU�IE Y� 9��K���`�X� ���<t<u!33f CC�0�)�!R�%%��Yf;%0hh�U��qt)j XP �8$-�;����AE9p��'���T4D8��3 @`�O��9M ��J � l!�+ЍH;Ms9�A u�B� @# � E���r‹F� +b,PS�&B��"�,Q;:��{�+�;EL ��h�����(M�� � @� �1F�\AAf uj [f@@��pf@@R��� b �Z����?�#@�|#�#� �jH^<�P*�!��10�Rf� ��r3VVhU ��QX��++PPVhc;e��P+P5=�P�@t )�; \@�B;\� ?j�;�`Qu$01@t� �<� `� GQ�ul$�at-j^9u貶� s #?sY1A@t8u3$r@�@�z � +E_[M3^؝jh@�脶Eu><�!#O�������3;|;*A�r!�D8�W�1胵/ɋ$ L1tP9i}D0tW u  .F� Ec�蠵8ME% ���Eu$��Yjh@�訵EuO�2� ���3;|;*A�r.!�S�.趴Ћ<*A�LtPl#��Y]Dt1�!"��YP@�u \@�E]9]tʹM谴�ME�##�j�ËUS39]ur�S�����3jVu ;uN$�$�9ur3>uMƛ�%F9YtH9Ew D u+ȃ+N8]tMap^[ə�Pj�u  U�" ]�!S3Vu9]u;u9] u3��;t9] w襳j^�B0.�p��<�W};ut1� w��(��uM &9XuuWu V ��L��}U u@G:tJu�JtMu�:@;���8t}u5x};rEPE�PоYYtM9us+E�{�uZE v:|};r!D�D�D�)9usE +Mt\8]tE`pjPX���Sj"R!ܱ!-��d+΃|Mx��� �+Etj*XX�@M ��53_& Et8��uPY/A�3ʼnESV3W9)A�u8SS3GWhd@�h���Sf@t=#�"npxu �!�=~"MEI8t@;uE+H;E}@E0�`@#��]9] u@E 5@�39]$SSuJ@���Pu ֋;��~Cj3Xr7D?=���w#��;t���P Y;t �$`E@9]>��Wuuujl�P5"SS!��֋ȉM;���E {�t)9]���;M�7Hu:� �2~E��C9D �"��;tj�PJ�3;tAuVd�"SS9]uSSu��)�S�!CVYuAYY@]IE� Eu3!E ���SSMQu0> "E;tԋ5@�P ։E;u3���~=w8!��;t-43;tuSW0Q uWr�3%uEuPWu��u#uWYK�+M��p9]t LYE;t 9EtP�ƍe_^[M3藕`u5ёu(Mu$�n�0(�U }�2E�&QQR)A�;u:EP3FV�V@�t5) A�4\@�xu jX)A�����;������]9]u@E5@�39] SSuu ���Pu֋;���~<w4D?=���w��;t���PPY;t ���؅ti?Pj�SN Ws�`u jj�tuPSu@�ESEYu39]�IE�uA��Yu3G;EtSSMQu � i��;t܉u uu �8u@�;tV膯YǍe_^[M3蘓ËUuM蒓u$Mu F�%uX�0�}�tMapB� Vu��vv�1 �@�1�0�06�Av �1$�1(�1,�10�14�1�18�@<蟮�a@v@�1D�1H�1L|�1Pt�1Tl�1Xd�1\\�1`T�1dL�1hD�1l<�1p4�1t,�1x$�3|�p���� � � �p � � � � � � � � � � � � � � � �2,^]t5;HA�tP} SF;L�k�Qv;5P�0VY� E�q~F ;T"�0P7"�cF;X�%�C;\��C;`��C;d�!﬎�C ;h��Qv$;5l�0V��ES3VW;t} ;w=j^0S�0ƨF<u;uڋ8tBOu;t BF:tOu;uj"Y3_^[]UV3PPP�U I� t $uI��$s ^(Sa3W9]�c9] un���h��$�;�ʋU;u � у}u @B:tOu�OtMu=�p;u4�uE jP\Xx#Muu&��Q�0uڋъBF:i0;�i�h�XT$L$���u<:u. t&:au% t:Au t:au uҋ3Ð���t:u t�`f`�P t`� t눐�:UWVu M};v;�����r=*A��tWV;^_u^_],��� r*$@�Ǻ�r $@�$ �@$x�@�4@�X@�#_FGFG^�^�&I,�&�p�&�P�0� ��KI�ۑ@�ȑ@�@�@�@�@�@�@�DDDDDDDDDDDDDD"����$@�@�@�@�@�E^_Ð �cFG�0I� ��cFG�t1|9���u$r $x��$0@�I�Ǻ-�r +$@�$-� @�@�@�F#шG[� [�[���$�PF�`*�*�L�� FR�G�gV2�I�4@�<@�D@�L@�T@�\@�d@�w�(DDDDDDDDD D DDDD���@�@�@�\�SFGr�2G�������sUV3P�0U L� t $u t $sF ^ËUQQE VuEEWVE��Y;u� ���NjJuMQuP�@�E;u\@�t PYϋ*A�D0 EU_^jh0@�u܉uEu�d �聢�Ƌ���3;|;*A�r!r8X)�W�ȋ�"� L1u&1A�A�A�[Pp��Y}D0tuuu uo�E܉Uɡ�0ѡ�MME WE܋U.E�c� A�h���蹣YMAt I A�I AA�T�Aa�]I�DSVWe�=)A�����h�@�@�*��5(@�h@�Wօ��PL$�G�aP7��@)A��"��� Y)A+0h��-� �P)A��`;tO9'�tGPS5�@FB�Yt,t(�tMQj MQjPׅtEu M�� �9�p;t0PC�t%ЉEt�p;tP�qtu � 5�#�!�s3_^[P MV3;|~ uD A�(�! �p讟V�����6;^]jhP@�՟3]3;;utU�5��DW:�S=*A�u8j@S �E;t s uu%���9}uSW5t@�蕟3]ujåYj �G(��A�3ʼnEA�Vtj ӽYVjY#����� � � �f�!�!�!�!�uEDž0���@jPj�P誁�a (��8�1j�%���@,T@�*�PP@�jmUSVWUj�j�h@�,V"��]_^[]ËL$A������t2D$H3"UhP(RP$R�,��]D$T$���SVWD$UPjh@�d5����A�3PD$d�-D$(Xp t:|$,t;t$,v-4v L$ H |�uh��DI� �_���뷋L$d T�_^[3d�0y��uQ R 9Qu�QA� S �l�KCk UQPXY]Y[�ËUVWuM%Eu 3;t0;u,mWWWWW����}�tE`p3��9}t }|Ƀ}$ËMS}~���~EPjPM ���BtGǀ-uM+uGEK��B �$9��u*0t E K4<xt <X��P!E � u0u&�`<XuGc�ձ���3u Nt˃0��t1ˀaw ;MsM9Er'u;v!M}�u#EOu }�t} e�[]]ى]G닾uu=t }���w u+9uv&̚E�"���tMEj�XƉEEt8Et]}�cE$�0B[_^/3Puu u9$A�uhxA�P:]�:UWVu M};v;�����r=*A��tWV;^_u^_]| ��lj ur*$@�Ǻ�r $@�$ �@$(�@�@�@�#ъFGFG^�^�&I,�&�p�&�P�0� ��XI�@�x@�p@�h@�`@�X@�P@�H@�DDDDDDDDDDDDDD���� �@�@�\�pE^_Ð� ���0I� �� F�t1|9$� $0@�$@��+!4�-�D@�h@�@�F#шG>>[���$�A*�L�� FR�GgV2�I�@�@�@�@�@� @�@�'�(DDDDDDDDD D DDDD���@@�H@�X@�l\�SFGr�2G������VuWV��YtP*A�u ~ u u@Dtj��j4�Y;tV} �`P@M \@�3V��_�YD0�t WaY3_^]jhp@�oau) �� ������~|;*A�r!�8(��AWnnɋ�1�� L1tP$�}D0tuYE苕� ���M@E ���Eu}��YËUVuF ttv賘f 3YFF^]1�A�3ʼnEV395A�tO=tA�u �� �u��pVMQjMQP@�ug==��u\@�xuωQ�VVjEPjEPV@�P@� ^�tVURP)�AQ V�tfEM3^ |g�a����-SVu 3;t9]t8uE;t3f3^[uM{E9Xu%�Tff8]tE`p3@ʍEPPYYt}E���~%9M| 39]RuQVj p@�EuM;3�r 8^t@�8]eMapY�*����:3j�PuEjVn� %�!j�uu $]�QL$+#ȋ%�;r Y�$-����P�VEVW|Y;*A�sQ<*A�<u5=A�S] u�tHtHuSjSjSj@�3[虒��衒 �_MS3;VW|[; �S<�@t58t0�u+tItI� 3�a�"[]3Eu�4/�Ã]V3;|"%`ȃ( #P��u$辑0褑V�!��,X��^]j h@�Ǒ}��4�0E39^u6j Y]�h��F Pu]FU0���9]t]�[�D8 PE臑3ۋ}j 踗{� �0D<�@�]jh���M3}j E�@ub��j 9�}}؃@<��4х���u����;���Fu\~�u9j ]�a3C]� # �]Fe�(}�u^ S��U�PtS�@낋}؋uj 赖1�F+�u}uyG+j@j /~�Eta �1[Q �s@�@ `�@E}tσDWYuM�a�=j �6  j�h��uE� u �a`��Y0qvI�4I�EME؋ESEЋ�VE܋EW3M̉}};E _�5h@�MQP֋r�t^}uXEPQօtK�pEuE �u&YF;~[wSD6=���w/g�F;t8���-WWuujuӋ;u3���PxY;t ���E}9}t؍6PWunqbY VuO�t];ti� S"�W� t`][@�9}uWWWW&�u Ӌ;t<VjLYYE;t+WWVPVuWu ;uuŐY} }tMЉuwYEe_^[M3t�QL$+ȃ Y��|U}uu }M����fofoNfoV fo^0ffOfW f_0fof@fonPfov`fo~pfg@foPfw`fp������Iuu}]Ç� }u]] ÙȋE3+ʃ�3+�N uJu΃M;t+VSP' EMtw]U +щU+ى]u}MES;u5كM MM>�UE+EPRQLb�%7ʃU�1]��lj j�u�!]�S3VW9]���uMr9]u.IS�����ъ@�8]tE`p���} ;t˾�{9uv( ?�?�`E9XuuW�p�� f�DMap;E�MQPG��E� 53� GMt;t;t+3_^[�V395$A�u99uuhV��!��'9u t܁}�w^]��Vu4Pu.�^]3PPjPjh���@hL@�@�tA�á� V5@�ttP֡pA�^�=+A��V5 A�u3cWu95 A�tS��uJ"�t@}�t:BaY'PV �;v<8=uc2PndЅtu* ]ËD8jh@�葉j3u3];;u% �@_8G@V讈 }���3E ;t039u6�tulE;tXP讷GjWlC�� ;uň� �E*uWP*�B;t ~� �t�8uE Ej<Ym$SVu Mo]���;sTM胹���~EPjS&� ���XO0����}�--A震�2胸T�1]}[�E%���P赵 YtEjE]E�Y贇*���3Ɉ]E�AEjpUjRQMQVp�0`$o@Et M � Mj�,PUWVSM tMu} AZ I�& t' t#:r:w:r:w:u u3:t rً[^_�x |nWp3;udr3���* =��3�A tVk;vx=��=�?E9XuuQ!�TP6p�Quh��p EP!�X ;u�r��Us�>>QQSV3W=�u;te@�jPVVӉE;tTjP-�;tCVVuPj7&�t6EVP��YY}9ut uYu;u3_^[Ã!�!�D$L$ ȋL$ u D$�S�Rd$ �[�UMI8�t@uIE+H]�H,A�3ʼnEESVW3ڋ]܉E9=`*A�u8jd@�PjPWW$@�t `*A����\@�xu 6����9}~&uo�EU;~ER[YU}}3��| G�#��;��3@;u։}9}uIM9}t;x�UujXu��;m��9E~jEPuh�� )}r}�Et׊PtЊ :r:v@@8�u9}~8.�s3@��6�6�M :r:t=�΋5@�WWuSj �b֋؉];���~@j3Xr4D;w&ąt���P褶Yt ���Ee�}�Suuuju����j�j�uu�gt{~B�6�tZ�P!�Ë3t1SW_�x� t� �B uOEWYuEY���339}u@E@Eu Y;utP�ЍEPuVu-%�؃!�QPu!� !�!��u SGYk "}�E"u� @�tSW6�Yƍe_^[M3"ip uMiu$Uu M� u `}�tMapB�@SuC�hU3;u8]tE`p3]u.S�����蚀\�0�q3�P tV�z;vՀ=�]=�KEH;uEPR02\�?pE�Ruh��QP� ;u{��r���V5 A�!WP 9M� u <=ttuً+1�^]�!R�QW3υtF9t @9�uV@jPYW�uj iPc��Yu!E^_ES3ۉ];uI � nV0Wu;tSj=V��YY};t@;t<38_E�; A�u 5� u`9] t$9 A�t3tJj1]9]��j/YC�Btމ@�auj��O�b;tÉu;t+}"b;Y|R9tN46 Y9]uEE���F�G49u?sjjW0q ;tUN����;}ߍG;6=8�+Pj<�C<�0Z�U YM��$xujVȬ@Y@Pp�YY;t\VV�AWՎ�@t B@S5|� M+E@#QW(uM}y*���WY9]tuEYEhu�N3SUS39]u3AVWuFV詰YY;t"uVW@ t SSSSS{3_^[]ËU�уSuMd�3;u(|9�S����l|Q�T8]tE`p3tVu9^u:u P���YYAD2t@:t> 9M u H9U t @ff;u �g�Map�u�2^[ɼ�Pj�u  2�, ]̍B[Í$����d$�3D$ST$���t :tτtQ�%u WV ؋ ~333ƃ�u%� t�,u���u^_[3ËB:t6t:t't:tt:tt^_�B^_[ÍB��a%@�ڋUS3;uH{ z� 8tߋM ;t؋;t8tSQR�� UVujXEU;uL� �z� �����~�|;5*A�r'zz��.� CA�č�Q��W<*A�ƊHuF�uo�DjwP];����9] t7@$EHjYtHuШtUE E����Bu!#l� l��1y?4M;rEu|YE;uy  �h��jSS@|D(ET,AHttI tl9]tg@ME���D 8]tNL% tC)�>)�}E-�P% u$*�&S�*�*�0E#D& SMQuP4,@�{��M;p��;Mg�4MD���}��;t M9 u ]EÉ]E;�Z� <���< t CAM鐒EH;sA8 u A�  uEmEj�EPjE�`u \�uE}�t?DHt} t ML%;]u�pjjj � CE9EG�@�C+EPE��D*���K xC���3@;]rK @A��t�pu |wU�*���zA;u@1$CQ| T%Cu�&C+ؙjRP�!�E+]Pu Suj�h��@�Eu4GP!wYME;E tPUzYE��E�3;EL0;tMf f���f tf CC@@E%�M;sHV� Ej ���G|3E)OE)[)U)(f} tj Xf--� �L%D& *=-�>d!d�E�CCCtCf�fCC+]]\@�Fj^;uuu� ���}u0imY]\3_[^jh@�uEuEu �*uK� ���3;|;*A�r!a�%s�V�+tɋ*A� L9t;MAut�0tv����PYuD8tuu u~g� E~6��H�ME�Et;�iV�@ËU0S3EVW]]E ���]t ]E E���]EP ��Yt SSSSSnr�:M���u�@�u9EtM+ú������tGHt.Ht&ssj^U�Q0?sW�>���Ut���uE���@}EjY+t7+t*+t+t@u9}EEZPE �@ E�2]E���#¹���;���;t0;t,;t=������=���@EM�P/E �P&E � =�t=���t`;1��u�EE���t  A�#MxE$�@tM���M���M���t } �pEw�Rt6�ujri Mrg������E=@�Su��uEPuut@׉EG�PmM�#;u+Et%e�?�oEu9��46$D0 \@�PqYq�t��u@@�;uDA�PVC�7�@�;u_q� uM@ u.�64Ѓ��YYML �D$ MeHM>��EtqjW6�� E;up8���tM6jEP6] u}uERP6M�;tSS6F]��;tE0���@��}uE#u M EE#;tD=_t)=�@�t"=������t=�@�uEA�� E]E@�@]f!9 =1I� aw;$�&;y��vv0f��E3H&��HR��E�q��j  87a tS��'#ƒf@EI /,� �u3tk���}�uY�!2�!��@bgsP� T� C�� #k�  E%��=��u6 0n0d��=�uSj6X�J�QA�=�AE�E+PD=� ��р9}ۋ! ��$2M0"�M ʈ8]u!Et5��M�#Z�<r }S!M|UvW jV j�Wu @�u4)\@�Pmȃ *A�D 6Y6%�._^[jh@�omM3u39u;u m����V�lruuj@u uEPE"�.EE���};t<l839ut+9utEM�1D� uYËE mËUQQVD�uel�V�1k���aJ9u tޞ�PEPuu |���tu� jU��u}ouuoM�R^y�SW}3ۉ};u kS��m���8t܋E ;tՋ�;t8tVj\W ��j/W �;���;���j:W=YY;usWI�jV A ����ht@�VWkø�P t �@Si�uVW ���w} ;t;vMj.Vh ��YYt,Su �@�3�V��!`Y�QE�B薙��:j E;u'�QVP<�� h�X�QE�}Yvj�EE+EA�E0VWrF�F�S"] �tm}A�} jMu -� �@ E�lm}Y9}t �[mYE^_[SVW3jSSu]]E#ƒUtYj"�Fz#ʃtAu }+���;������Sj4@�Pd@�Euci� ���Xi0h�@�E| ;rP1謫��� 6~�xӅwϋu�QuFD�Uuj��`@�3x�fp8u h3 ���u;q|;skS�Q�ApDYP0@�HE#‰Uu)w_�0hZ u#uSuuk�k�p3�JpVuV"y��b�1b� �PMW�u P�@�uw��3t PhYt0rD0 _^]F@S] y�,�0#.� 0A$Wy����@��tPtB���t&�@�t� �u=I L1$⁀'�Ƃa �!_^[uc� ]Ã`%���{��aEV3*f{ rfIjX d*A�3�,hES3W]];tt~~ u EEE8ffb g��?0��@8uH8t� 8uVjD^VESPIu5*A� ;t+Fȋ*8\uNH;u;@��23��4��kfEjPgYE;0E̍H|0]~9Eа!Pu�EA9u|ʋE8]t,H3ҍD0}j_;} BAE���jeEPEPSuujSSuu  @�\@�űhY;u W?eYX}uSQ5@�9]uju@�EPu@�]}u�]u֋d� ���^_[ËU@A�3ʼnEM ESVWx@�}fMԋM3ۉMMjEȋ�M]܉]]^P2tY;ujVufuYY;u#E4�!< ��9/��EPESP ;tuqS�0gb�0b)� 蹒GGY}9]tu褒�E;tOj�_P舒|��< A�;uC� 5u6MfEYe�� �%}ȋ6;���FU��]8t(=tVYMLj�4M:u܋MM+8Xt-x:u'x=u!Pݑ;�p؍D � E8=t΋E+Eu} PP �6��tM9u}jW8ePM�26 fYb. lPM� i��E���P+EPVP t @S`�76PE�6�I6�6�# FY;uËE^09]���}؋E+Q QV+} }6EM7+PVѹ��x�SkY�9u9]ug}TLWV:� _K�h`@�WV�Z� ��uWV߷#�#�;t E;0uF-;tPqd�K� ]�E܋M_^3[qHV39uu$`0`V�0�L� jXUE uu8@�uP`Y`�(u"tE t`*S�a � T3^]bSu3ۍM]GM;u(/`.� 8]tE`p3qVu9^uu Qj��YY$�,WMapNWD7t!A:t 9E uAE 9]�MA:u_M�q�DE^j�u u7 �39]u3��uM��E9Xu&u=�!8]m���a��W};t9] u._ ^:��t%��VfMGDMtC:u]Xff fGMf;pr f;pwfp6f;pr0f;pw*fp$U At f��D� u.rf E ��dEU �W�+��?�!;H�H�H�H�H�H�Mf;u!f;t 9],!3`H�{!� #kJ]��UW}3كE 8t3_��-������������$��<��T��h��p��������������������$��@��^��r�������������������� ����&��0��@��V��b��r��������������$��2��L��\��r��������������������"��4��F��X��j��v������������������$��0��@��R�M@�A@�dK@�X@��`@$�fK@���failed to get exit code from process. ��(�hcreate� %s�%s��Could noH� ec�P��Can�find Python executable %s ���#!p�@.exe�%#!8�Aopen&�-script.pyw�CorExitP���m�s�c�o�r�e�e�.�d�l�l���(�n�u �)W�b�(null ���������EEE�@50�P.�( 8PX�700WP�� �`h````��xpxxxx���������!A��"A/�x�  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�=���EnPointer���K�E�R�N�E�L�3�2�.�D�L�L�*De,�FlsFree�FlsSetValu �G �PAlloc=� runtime error �� ��TLOSS���W�SING�v�DOMAIN�R6034 An application has made an attemptload the C |�library incorrectly. Please contact2�^�'s support team for more inform�.�0����f3 - A�use MSIL: this assembly during nativ�d\�qitializ_� T0�0ind�es a bug in your . It is most likely�result of callm�!an�Q-comp(/clr) funcTa�nstructor orqDllMain���2��enough space/Plocal�1018�0#in�e�2CRTpthan once.�h���0d��J���a�d � 28 �!unv6to "�P heap&� 27(��D���'wi9�8�68�?std8�58�pure virtual�a�PR6024(��0_on0/at� Y7�� 198��Pconsole device,�$expected 1 %un$��multithread lock error ����R6016 - not enough space for thread data � This application has requested the Runtime to terminate it in an unusual way. Please contact>�a\��'s support team�more informa�.�_R6009�environment �/08,�@argu)�sX�2,�floating point��3aloaded/��Microsoft Vi�5C++pLibraryt ��...�<program name unknown>��RCEB! P'� : =������ �S�� � �S��� � � � � � �J��EEE��00P��('8PW��700PP��� (���`h`hhhxppwpp������, ��$(�� ��?H�� .�� 2�&��/��B�&��/��@�h]%����&�/��8����� �f�7�& �/��'� 0��&�&� � � Pt�  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`a �V{|}~� �m. ABCDEFGHIJKLMNOPQRSTUVWXYZ[ �rHH:mm:ss����dddd, MMMM �yyyy�MM/dd/yy �PM��AM��December�5Nov �@Octo�DSept�August��JulD�@June8�April���March���Februar$�!an �Dec�Nov�Oct�Sep�AugH��Jun�May�Apr@��<��Jan�SaturdaD�1Fri �QThurs �s��Wedne �"Tu �1Mon�#Su�at�Fri�Thu0��Tue�Mon�Sun�GetProcessWindowStatio�UserObjectInform�0A��4��LastActivePopup��G� �MessageBoxA�USER32.DLL�t�MonTueWedThuFriSat���FebMarAprMayJunJulAugSepOctNov9����CONOUT$�.comt1.ex|!.bG�Q�.cmd�\��SystemRooa�@���H��$A�@�@�8��i�� ��@���0@��� �*# � �P%@��%@� ��Q�(�jh5@�l5H� �*; �@��P� � �"k=@��,�57=@� h�">(�� �/#@ �oMA@�iA ��|�*]G � �*+K � �/N � &P� �&R(� � p�*eYp�H�o [@�[ �[][@�a ��*^@�jH_@�__ � �*j �@�����l@�����������0y@� � �/ށ � * �@�* � `�/M � * � �*[ �Ȁ�"! ���?]@�"ܮ(� �* � �`@�\f��b��� � �-������������$��<��T��h��p��������������������$��@��^��r�������������������� ����&��0��@��V��b��r��������������$��2��L��\��r��������������������"��4��F��X��j��v������������������$��0��@��R�K@RGenerateConsoleCtrlEvent��GetExitCodeProcess��nWaitForSingleObject��Creat'�A��SetU�Handler�V�!ModuleFileNameA���EnterCriticalSection��Leave�F�Y�W��+Sleep�"Get�AAddr� �����p<�CommandLineA�<2�StartupInfoA��Z�0Cou>$�d�0��F���Type��Delet�7Termin0��:�aCurren���QHUnh"`dExcep�Filter��Set�IsDebuggerPresb� LastError��HeapFree�� �pAlloc�\(� CP�@�IlockedIncremK�(��%De�S<�`ACP��0OEM �IsValid4age�>TlsGetValue�<�}� �? �S�=��|�j�0ThreadId��WritD �LoadLibraryA��InitializrAndSpin Kq�pEnviron�StringsA�t��/�L2� W�WideCharToMultiByte�H�AW��C6��aVirtual��YQueryPerformance�@er�jlATick�0��`�@Id�S&�SystemTimeAsime�RtlUnwind��"Re^��!�Z�GP���Mode��BFlush\�Buffers��LCMapHUA�� $To!(�&�AW��@�|�NJA��C�@W���`Locale@A��(�~�0Poi1���Size��D�Close.0A�N��`Output&�0W�zStdHandle��y�Cre ateFileA�S�CompareStringA��V� W��SetEnvironmentVariab>�KERNEL32.dll��nReadX�2��4�2dOf�&GetProcessHeap��Get�AttributesA��"+��' � �H���#���� ���� �N@D#@�<l@�\@� A'�1��T��X� ���������� ������ ������ ������������ ��X��<���X��/��S�����x�!h�5(��n�(�C�@P���4�R(�S�@W���`�@Y���|�l�m��� ���p������r����0�@����� �P�H����)�����p��� � �"0�$�4��t�� ����(��4�������,���� ���������� ��� abcdefghijklmnopqrstuvwxyz� ABCDEFGHIJKLMNOPQRSTUVWXYZ �� �� �� hA���`y!" �"�@ �1@~���ڣ .�3��@�0�A0����Ϣ�[M��`�!~2��Q��Q^ �_j2*� ���1~:�l@�C�#���=9AS��-����U�&Hd�h@�@�p@�A�A��������@����@� ���@� ���@����@����@����@����\@����$@����@����@����@����d@����D@����@� ���@�!���@�"���@�x�@�y���@�I@@�mP@��_@�^�q�����X������c�� lj@�@�@�@�@�@�@�@�x@�p@�h@�\@�P@�H@�<@�8@�4@�0@�,@�(@�$@� @�@�@�@�@� @�@�@�@�@0�$@�@�@�@�@�@�@�@�@�@�|@�p@� ����.T_A�)���$�8�<����L����(@  ���(��p��������_�PST��)/PD@�+A�A�� �@��� ���;���Z���x�����������������0��N��m�T��4�:���Y���w�����������������/��M��l��� ���l@�d@�\@�T@��� __all__ = [] __metaclass�type try: # Python >=3.2�from tempfile import Te�aryDirectory except I�btErrorS�2�ashutilR��T� ��X��E���1"""*�� �Very simple�torary d� context manager.9�Will try to delete afterward, but w"�also ignore OS andn�EilarJ�e�Bs onH�6ionf���)�def __init__(self)�����.name = NoneHandle mkd& raising an g5ion`� D��2��.>�"()b�(��_enter�ureturn � ;�x�,��A �Qvalue �[trace�a���q.rmtreey, True)��2 OSY�#removal  are not the only possibleH��{�Ipass�� # This E originally Fpip: # https://github.com/pypa/pip/blob/8f4f15a5a95d7d5b511ceaee9ed261176c181970/src/6� _i nal/pep425tags.py """Generand work with PEP 425 Compatibility T8���__future__absolute_" �P dist s.� >��=�4log0�platform�$re �7sys �Uconfi6�warnings`�collectionsb�OrderedDict %�.� glibc _osx_arch_pat = re�pile(r'(.+)_(\d�.+)') Bget_�_var(var "ys,�.7��A!IO` as e:Issue #1074(��v�. �`("{}".>�at(e), RuntimeW�n None def get_abbr_impl(): """Return �eviated "�ementation name."""2�if hasattr(sys, 'pypy_version_info'\��`� pyL�q = 'pp'@�elif sys.platform.startswith('java@�/jy@� == 'cli'� v�iv�/se �c �r�a def1����0��$'0mpl9�! =H�config_var("/qnodot")aif not|9�!or:���'pp���-�= ''.join(map(str,=� �2())n��!���4�:,�� -like tuple for use in decr#ing the minor�>�/o� !# as per https://github.com/pypa/pip/issues/2882i����.y��B[0], u.major,B��F����� .�W(elhy��6�x� �,1]7tagx�sN1Tagnthis specific@u.6��p"{}{}".};at( 97())�flag(var, fallback, expected=True, warn �"""Use a2�q method�determin `SOABI b�As if�rneeded <�var is unset inavailabl>valu2var0if !�gis Non!if����log.debug("CP varin�U '%s'�, Python �tag may /�G� � "bcorrect",S���'�_(����%==rJabi_.)G�based on kE(if >)Nremulate �p#(C�2�5Py)^soabih'\�'��]#�Y�F�"ans�4P{'cp'V@p'} � mmaxunicode&da�Em�u�ik�j('Py_DEBUG'�J�{lambda:gettotalrefcount')>� (�3p')�\����d� �WITH_PYMALLOC� e�� warn=(impl == 'cp')): �um = 'm'�if get_flag('Py_UNICODE_SIZE','�B� lambda: sys.maxunicodeq�0x10ffff8�expected=4 ��O and����version_info.major�]2)) \:�1and�4� )u)u)0abi�$%s�A' % k,B�u_ver(), d, m, u)�pelif so@��� �.startswith('cpython-'�.�" +=�.split('-')[1]Z��9�o�.replace('.', '_')�-�H�,seB�ANone�return abi def _is_running_32bit(�*��amaxsiz2147483647@��oplatform;�B"""Rh�Dour � name 'win32�linux_x86_64'"""��]5ys.4��vdarwin'�# distutils.�.� �s the release based on�Bvalu�{# of MACOSX_DEPLOYMENT_TARGET3�qwhich P was built, �1may�K� be significantly older tha{�user's current machine.B��D, _,�% =DB.mac1�I��$ =�]E.') (�&ifP�2= "x"����� = "i386���= "ppc64V�Fppc"�r='macosx_{}� '.e5at(�V[0], �%1]4�# XXX remove5 dependencresult ="�Wo 4if R�8= "# 32 bitoprogram (�Aa 64$�LC): pip shoull��# install4run]�compiled extensions iiat cas� i6�V�qis_many� 1_g�datibleq# Only �,�o�x86-64 / _�]� `() not�{�,b�:�&"}%�RFalse[# Check for presence�b modul6tryM�vimport *���cg�Vbool(�.Bxcept (IT� Error, AttributeError):  # Fall through to heuristic check below ,���Qpass �1# C �glibc version. CentOS 5 uses �A2.5.4�breturn�.have_compatible_,�(2, 5) def get_darwin_arches(major, min�achine):]�B"""R`�a list of supported A� (including group�Q) forF�the given l�b and mo�3�itecturee�a,�4cOS!��1"""Q�y�B= []9��_�s� ��2���s`# Look�0at �application�����$OSAs in.�Qchart�M�provided by https://en.wikipedia.org/�r/OS_X#Vs it appearsM�our timeline looks Irly likex�5�10.0 - Introduces ppc�=3�] 10.4)�64, i386,dx86_64=�, however�Wppc64x��U�/ 7�� is CLI onlyW�cannot bed^?GUIL��s�5 - Extend�/64y�Pto co�0GUI_ M�6 - Drops�� �O10.7)�� �! Gthat we do �know if we're install%Jr a ,I�1mus<conservative�`assumeKAmigh$�L�3� be(0 as��� A did�Boccu�p# untilH�Note: The abov�Bform[is taken fromQ&"AX��� column��"Processor@� since IiGieve�Q�1car�@ut w�2ruchets anC@ can P��twhich p�s�$OS�!if == 'ppc'�� ) <= (10�%��� G�/64I�=I� �H�>H�%4)�MJ�5J�"inSs#Pfor g�t s[�]'�% G��4��6TruB�RFalse|groups = OrderedDict([ � ("fat", ("i386", "ppc")),"�Qintel$�`x86_64&�.� '�1fat�&("'�[ppc64O�_fat32O� }�1]) � if _supports_arch(major, min�achine):.����%�es.append(m �N�Pfor g!� in groups9�3if .��[.�_] and� (���"�����'universal'�rreturn '� def get 0ed(0�ions=None, no,�=False, platform����Bimpl�A abi ��C"""R}� list of ed tags ESeach � specified inm�`�2s`.�d:param1�Fs: a]�Utring�,q�0thef�`m ["33qF32"]0or �0. T(�Dirst?� will be assum�o� our ABI.��):� y {�UexactE� you want valid?��F %, �!If�Q, useJ�local systemQ� ��~���ementation�/�rpreter \� �?abi�?abiy�;2abix�1"""HZB= [],`# VersP mustgiven with renAt toapreferenceP�$if As is l�����q_info =f� _�!()^��/�~$ =g�7�U[:-1]"�2# S all previoust Python>�s�X��U�|Trangec�p-1], -1��6����''.join(map(st*�1A + (`�C,)))f��! =��aPabbr_�($�Babis1��=41�Si_tag" if�s�>�P[0:0]C�3abi@abi3V�4set9�m��g��`suffix@imp.��7es(i�)�[0].starts(w('.abi')��+x�R.add(K�4�plit('.', 2)[1x��@.extDpsorted((C�B&�jT'nonecif notUrch = E ���J9rch�lmacosx�# �`-10.6-�l on macosx-10.9-x86_64 �match = _osx_arch_pat.�(�).�1if �:��O�name, major, min�aactualV�" =9�.groups(W��A� tpl = '{}_{}_%i_%s'.format(\�8���}es = []� for m in reversed(range(int(�~) + 1))����>�a>�get_darwin�"esA���g), m, �L��P��.append(�0% (>�)�Nelse� # @�� pattern didn'tUJ (?!C�o���9�elif plat^ is None and is_manylinux1_compatible(��P�s� �.replace('9�F', 'F�1'),�� ��E�O�%] # Current cion, c� API (built specifically our Python���0abiJabis`�1rch�Krche ��Osupported('%s%s' % (impl,�@s[0]�"bi�())�abi3 modules c with olderH�3 of��� �� �Zs[1:]�!# h�was introduced3�E 3.2U���%ifv�pin {'31J30'}X��,�Ybreak>���\ 3s: # empty set if not�) 3<��R�@� �(�""Has binaries, does�tuse the�6API�� �3'py"0]j'none'@# No! /+�, but requires �`ementation�w��� z�S'any'r# TaggedD�#eing cross-�1# (Ajust<G"ed� +�v� ,sgeneric$��i�enumerate(�s�� O,), @�if i == 0����V��ureturn E�: p_tag = ���� ()$� ort sys from distutils.errors import DistutilsOptionError from d�. �0�strtobool%�Tdebug&�DEBUG classd�@ribua� _parse_config_files: """�Mix-in providing forward-compatibility�P funcT�a�Qto beC�included by default on Python 3.7. (�Do not edit the code in this �except to updatet�F�aLlemented@�:!��Ndef �p(self, names=None)�/=�rdCCPOr��/�p# Ignor�stall directory os if we have a venv��=�if sys.prefix !=�Rbase_��.�i�_W�5= [I�����1'in�-E�5', �Lplat�_lib',C��3�#�F�;ure�headersI� xscripts�@data��� �Texec-��@home'�@user�eroot'](�Oelse- ]iJfrozenset(�)4�f4@ is 7 s�S0 = eY.findz(P� D�8�announce(".. P�':"S�!�Hr = (interpola85for��J� �?if ���q �Q reaFU%s" %\�)r��5��.+�(r� "���!sem��1��'s(�P���-��(5� `�2�T_dict3get\�9� ��:���0opt�f� /�$��� if�0'__mq__' and�� :in pH��L�Rval =Tr.get�N,opt��2�����=o�.replace('-?/_'4� [opt] = W, valo�a�a# Makeu�/get everythW0(soiretainS#?�original4`s that�ions come  �__init__b@# If[�re was a "global" ��y�, use it�#"se�� Bif '_�'W��self.command_options: �for (opt, (src, val)) in self.command_op;�['global'].items()M��X�ralias =@�negativeA�@.getj�)��3�>tryH���1if O���"�setattr(�,-�, not strtobool(� t��=�elif opt�('verbose', 'dry_run'): # ugh!?��C� �Hz�/se�U��� � except ValueError as msgZ�raise DistutilsO7�(msg) if sys.version_info < (3,# Python 2 behavior is sufficient�Qclassh�@ribu8_parse_config_fileBpass|�4Fal# When updatedn�available upstream,w�Q# dis�override here.��!0# EASY-INSTALL-SCRIPT: %(spec)r,%(script_name)r __requires__ = (� __import__('pkg_resources').run_F�(0�,b�Y�) """ Compatibility SupS� .7 and earlier5� z� platform from setuptools.extern (�six def get_all_headers(message, key���Given an HTTPM(�return all D� matching a g4�2keyK�5�m��1��(t�#rsix.PY2���Y��\�linux_py2_ascii = (9:�.system() == 'L.�'o%��� ) rmtree_safeltr if ]�else lambda x: xWorkaroundhttp://bugs.pu�.org/issue246723$osoperator�%sy�contextlib�Aiter�unittest%d) .e[s$A;, Q B�;�2log�j��`TestLoj.Emove�map, filterW� }�(_listdir, �`existsRrmalize_pathq�X��working_set, @spac9�ckages, evaluate_markerN� add_activaI��1ene�l, EntryPoint)]�rt Command __metaclass__ = type � ScanningLoader(Test � ): def __init__(self):���.�.#�"��1�._visited = set()Y�@loadE�sFromModuled�1, m �, pattern=Nonez�,"""Return a suite of all tests cases contained in the given[����!If�r�� is a package, �T�Bfromc�#heD�sY�5it.� K�has an ``additional_�p`` func�0, c�it and addL���r�value to�B�s�5"""3�#if��� {��W��T<� /�R.add(�7�z�U = []6��w.append=.8 )W�if hasattrs�<, "2"�x���� f(e� '__path__']�for fileF�resource_listdi�.__name__, '?���!ifB�.endswith('.py')[�D!= '4�� �C���2sub�# =y� + '.' +h�F[:-3�:���OelseX�5if �cexists{_�,X��e�/� *�f���<9�������Minue;�  yUName(� Alen(@�j) != 1)"S�`C?0���8�X� [0] # don't create a nes U� jonly one r # adap&�tqjaraco.es.properties:NonDataP�y �� g, fget���! =�!8�$geQ, obj��G  if��D�\z����� g�A�.{�U(obj)�F(Command�3"""��run unitafter in-place buildo�pdescriptO = ";�auser_o9�sN��� ('�!-m=', 'm', "Run �_'Fspecified<"),G�-�F�&s'�O�asingle��0Sse orr(e.g. '�.�w�e')"),  ('test-runner=', 'r', "Test � to use"), ] �def initialize_options(self):"��-���.a�_suite = None��_modul �oloader@��`�a���?fin�!���<if �7and�m���5� msg = "You may specify a -�a or a ��, but not both"w��F�raise DistutilsOBError(msg)g�)���!isI � (��)��U� �=�distribu �Jelsez�Q��7+ "T�"���&�= getattrz.�!, _*�!',2)� .$� t�"setuptools.command�:ScanningL m�m� &��*���@NonDataProperty��=argreturn listL_+�)�A���!if��P ys.version_info >= (2, 7?��Eyield 'discover'���A\verbo6�#--�7�� :� ��� with_project_on_sys_path!g, func�&"" Backward compatibility for P�� context.�L���;��(��)��(@W�Clib. �qmanagerh���R��, include_SGs=[]h���_2to3 = six.PY3  1use3�', False���5if R� p# If we p�awe cangdo this inplace:�P���# Ensure metadataup-to-dat�,���7.re('build_py'h�&=0C=�>un_4� )�pbpy_cmd3elf.get_d=�"q�"=��ath = normY�.;�7lib[��0# B>� extensions  self.reinitialize_command('egg_info', �base=build_path) ?��G�/un>��/) *��q�]��ext', inplace=0h� 5�*�Yelse:v�# Without 2to3^� works fin/��0# B� extensions in-� �R��1��c>�_�i�ei_cmd =qget_find"�"o�;�0ys.5[:]X���smodules"��g.copy(I�:tryyqproject3q = norm��(�.��_ ��.insert(0, N� -��ing_set.__:__(#�add_activation_listener(lambda dist:�.&�:e()B�require('%s==%s' % �gname, �0ver F�Bwith�hs_on_python�(([�*])N� Uyieldlus:`[:] = �[�4��F��#�Klear- �pupdate(H�3� |p�@staticmetho�@contextlib. �qmanager1�@def � �1"""0���Add the indicatedB�1 to�qhead of �PYTHONPATH environmentJ�variable s;�at subprocesses will also seeO�packages aD�Rthese�.DQ�i3 a � that restoresQ�value on exit.��pnothingb\GorigM�#�#s.�f.get('�3', J�currentC�&''>��Befix�ep.join( �9��0to_� = filter(None, [prD�., �]A�1newUo��\� 0�4if 3�eo7[3�O5���<if $is� K.pop� ����PATH'] = orig_pythonpath @staticmethod�def install_dists(�!):��3�5""" �I)� the requirements indicated by self.F�ribution anm��P�Pretur� iterable ofR��3�s that were built.}��pir_d = 2�p.fetch_-�Rd_egg�.��%s)H�t<�ctests_:�f or []?�e?� e���v for k, v in�Uextra[�v.items(\��6�if k.startswith(':')A evaluate_marker(k[1:�F�b�_tools.chain(4 , � , �)�@run(@"ed" =��4� T��� cmr' '.joi_�f._argv�"ifU�vdry_runt�@���.announce('skipping "%s" (dry run)' % cmdT��;���� K�DrunnJ�@��-s = map(operator.attrgetter('loca4'),:&���P�7_on(�m��2�`roject4�@sys_-�(-��1��Arun_({��$�;�# Purge modules under @� from sys.�R. The�0loa'�Ewill&# re-importm@�� %2. R(d when 2to3 is use!# �namespace packages�+aix.PY3 0getp, 'use_g�', False��7���_suite.split('.')[0]��3�#if2�_�_� �2�Bdel_i��K[O��!� S�wK��.�O�.append(^�q�'����y += '.'��������v�0if ,�^� R�Y�����D��Plist(d�`.__delG__, K�)�f��p = unit � .m �bNone, ��w,$��;�L=#�resolve_as_epX�$�_)>�oRunner>� �k+er>�Qexit=V�!�v!otz.result.wasSuccessful  msg = 'Test failed: %s' % test.result �self.announce(msg, log.ERROR)*�raise DistutilsError1�!) '�@property�def _argv(a�!):��w�return ['unittest'] + %�.��4�sQ�staticmethod@�U�resolve_as_ep(val]�1""")��i�!Load the indicated attribute value, called, as a�if it wereG�pspecifi>�s an entry point.%�x� if^� is None����7�parsed = EU�PT��p("x=" +I�=� !�d� ()() import getpass from d.command &�0uplas orig class �(�. �X�Override default2� behavior to obtain �2worin a variety of different waysD�d��finalize_optionsB�.,�K��pWusername = (��)or�M@.getA�( �# Attempt��@. Shcircuit esa�1 atFfirs`# sign!csucces�T�� �__#�__keyring() 2�prompt_for8� +�\� �}�E�������8��2 � ��. Suppress Exce1�D�P�:tryjC�R = __C__('�'�I�Y�����.repository,��SH�e�� ��|4^�i�-Pf for a*!onF?tty()����(, KeyboardInterrupt��P�B�f <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVm�>N�Identity�F.0.01���0proorArchitecture="X862��@="%(�/)s&�type="win32"/�B!-- �!fy@applion secur�requirements. --=�trustInfo 1-microsoft-com:asm.v3"> �<security���<requestedPrivileges"� &�ExecutionLevel l�="asInvoker" uiAccess="false"/N�/</q� *</�4</trustInfo> </assembly> #!/usr/bin/env python """ Easy Install ---�: A tool for doing automatic download/extract/build of distutils-based Pyk�packages. FP�etailed documenta%, see the accompanyw����.txt file, or visit0�`$� home page`__. __ https://setup�s.readthedocs.io/en/latest/easy_ia.html ( from glob import ���.� �et_platform(� convert_path, subst_vars4�derrors^�(Dn@ArgE �%, � OpT� -��*�P��, )z�command.�INSTALL_SCHEMES, �[_KEYSC�3�log, dir_) $�.g�Lu_script�first_line_re:�Tspawnd�afind_eySable 4sys �o �2zip��!sh��P tempn�)zi�r]�4tat%�drandom�textwrap�uwarning�7sitF�5rucH�0con=�4lib<�`subpro/�Dhlex �2io sysconfigBget_�Z , ��p1�UexterL3sixS� "�.six.movea�parser, map]��CP Z�tsandbox'�Arun_ )�Apy27!t,�mtree_saf9�X+�msetoptT�qarchive+� un_� 3���age_inde�(lPI�!, _0ire_arg, UR=,u�bf_egg, egg_info�Twheel�W �#�pkg_resourc�QyieldXs, normalize4�`_strinz�nsure_directory,��N��1rib!, �s, Environ�c, Requ D��@�PathMetadata, Egg �WorkingSet5�NotFoundO�VersionConflic+� EVELOP_DIST, ) import pkg_Fresources.py31compat __metaclass__ = type # Turn on PEP440Warnings warnings.filterw� ("default", category=pkg_u� I�)y�1alls�[ 'samefile', 'easy_install�PthDistributions�extract_win*�b_cfg',K�@main#�get_exe_prefixes', ] def is_64bit():4�0ret� struct.calcsize("P") == 87��s(p1, p2=�1"""E�Determine if two paths reference the C� �!. 5�Augments os.0�.!�� � to workWindows and5�suppresses errorsr�!her�� doesn't exist.1��Qboth_�% =r��Ps(p1)a� �!2)C�Euse_�= hasattr(�,G�k�?�8if B�w�{H��c=�wnorm_p1����/�.�@case����?_p25�"2)5��<�1 ��2 if six.PY2:�J_to_ascii(s�s(�.is&�6try�7��_�Ptext_Q(s, '5�'��"����ATrue���except UnicodeE [�5�False else�0.enT�(�u���� @������( _one_liner = lambda F:�wrap.dedent(� ).Jp().replace('\/q; ')  (Command """Manage a download/build/all processvpdescrip = "Find/get/��Python packagesNcu�_consumes_argu+!= 0auser_o\�Bs = N�^"('=', None, "�a��"")52�"zip-ok", "z�0�� as a zip 9�multi-version;�m�ake apps haverequire() a .� �pupgrade>�U�cforce � (searches PyPI for latestM�*s)��P-dir=O�d���jto DIR9�8�s8��s� 8�exclude-$��7�x� Doz�� �always-copy2�a�PCopy Rdneeded�|�M�:dir�index-url=", "i", "base URL of Python Package Index"), �("find-links=", "f�additionalH�(s) to search for pO�sJ��build-directoryO�&b"l� "download/extract/3� in DIR; keep the result_�'optimize=', 'O'X�also compile with -�a�Q: -O1�2\"p0-O\�\ "-O2#�$�pand -O0disable [defaultX�)0]p'record�HNone�filename�PwhichS�/�P listinstalled .� �always-unzip0Z',RCn't 8� as a zip>�, no matter what�@sites� 'SK��ies where .pth�Z workJ�@edit��eH�I� specified/��/��mmJ�pno-depsI�NI�(do�dependencielow-host�H=�p�n@hat ��`s must*ch�local-snapshots-ok�liAlow ing eggs from =� checkouversion',  "print �q inform o;exi6no-G�D*�Z (� definedv0 be�0Aed")F�]�boolean_<qons = [��+C'zipcmulti-��#exclude-script`upgrad'GcopyK'�P u��!] �0if .ENABLE_USER_SITE:���help_msg = "��Auser;�- '%s'" %�.I�H��1�0.ap0(('� k�)X�~� V9�8�)�negative^�D = {5$: ~}�create_i$ =O�def initializU�ions(self)#k --�0on seemsPbe an�I-in A# so:� should be False.����p�.^�:= 0�zip_ok = $�_z��+ 5�D_dir:�s�_��I�dex_url = g��B_��r�$�?argz��[����C*�G_G�_ = None  self.editable =�tno_deps�allow_host�cNone �?�Droot,�dprefix�no_repor�8�version = ��install_purelib$� # for � module distributions�E�:latE�Anon-E�(?�s w/ exten�/s)F�dheader�cC/C++ �9� {�set to eithe�� ����D�_scrip�Cdata)E�0basn?lat%� if site.ENABLE_USER_SITE:h�� �CuserK�;�4�OBASE3� �,��>�n�3��g�3�Oelset� ��j� )��no_find_link �A# Opk not specifi=via command li%package_inde x�fpth_fialways_copy_from��5_di��ed_projecA*{}%��C�5py_,�v = Fals1# A� read eas-�" o , even if we are subclassed, or havO�0an pendent z�nce created. This ensures that defaults will�"# &�y!e &the standard configura ^h(s)' "�"N�0sec*��t�is a "develop"�"�0ll"y���8som�oembedding.h�_dry_ruQverbo,��.� N� "�S_set__(0�, :�3get1�x_dict(')')def delete_blockers(�$, �)eextant)�: = ��Aname �%inL� �if os.path.exists(3�)� is�D��list(map�#._��Z�,�)�)�;� , 4��log.info("D$sing %s"'���\�0�breturnm��`is_tre�Adir(z� z����p� remover = rmtree if is_ �else os.unlink �remover(path) �@staticmethod�def _render_version():��G�5""" �R&� the Setuptools 5� and installation details,1�un exit.K�W�ver = sys.K�E[:3]*�dist = get_ �@ribu^�5('s�%').�wtmpl = � {7�[�c} from�1loc�} (Python {ver})'O�`print(U�.format(**6�Vls())v�raise SystemExit(n�\finalize_op�gs(selfa���D� �$py 6@.spl{�&[0=prefix, exec_ �Lconfig_vars('�G', ')�'��t��3�E = {%�!�'e_name': .���.��?(),7��:� �=�@full[�>�!� ?�I6': � ��i_short,�_[0:3]1�Lnodo1�7] +m�,[2?�3sys�j� 4": � ��@�: ,�(�# Only p$3.2+ has abiflags�� ':attr(sys, '�G, ''} if site.ENABLE_USER_SITE�l_['userbase']Celf._� �A��z�A����>�T_fix_e�qdir_form�_-���pexpand_�Vdirs(;N�����_�(��U�'{��Pscrip!r�build_directory'����s��# If a non-defaultW� was specified, .�5the�"# � � to match ��.��� is None�%�=lT�no_find_sW� (�v= FalseO�E# Le �get set by"_lib command, whi�gn turn`gets i�2nfo�S�@��Qtakes into account  �# --prefix and --home �all that other crud. 4� self.set_undefined_options($��,�'install_lib', (�idir', �):� �# Likewise, set default script_dir fromI��$s.x��h�X��N�����'�%) l�"if%AuserP}��purelib:/��- "���=C� 5�4�� 3��s3�#B--record@Cthe g� command4��!P�� �) # Should this be moved to z�f statement below? It's not use�# elsewhere��normpath = map(�`alize_�`, sys. ����@sites = get_�(-��" i�KNoneO�[����o�p.expand(s.strip()) for s in7��}�.split(',u�]�]8��M�Ud in 8� ��2�!if^�isdir(d))��-�log.warn("%s (in --[�-dirs) doeexist", d?�>���!elq�&rm1(d)�0in �~�raise DistutilsOiZErrorm�h��^d + "�%on":?��s,� O{.append'(dt{editabl_�W�Ucheck�index_url� or "https://pypi.org/simple/�F�ashadow.H� �&[:^�Z�Q_itemb� :�K,c� a6if O����S��T���fert(0,N��allow_hosts�5= [F�#� �S�6'*'(�Ypackage_��Y�� (�Screat<� (X��%�, search_path=self.shadow_path, hosts=�7, �)�s5� local_index = Environment(�T�p + sys._�%) E�1if )�find_links is not None:(���if isinstance`�7�, six.string_types)>��B� k�=}�v.split(�;els�D�%[]��snapshots_ok�E�rpackage>.scan_egg�?����!if+N�6no_n�7add/�n�?��[�set_undefined_options('ll_lib', ('�vmize', �)L�� 7�[, int:try����6� =7���s��/���{�C(0 <,���2v��2���raise ValueError��gexcept��@�DistutilsO9J�E("--�must be 0, 1, or 2""�editable andbuild_directo- �2Arg}� ��� "M�specify a V� V� (-b) when using --�"L�yqJargs�No urls, filenames"prequirei"s �ied (see --help)D�outputs = []def _fix_dir_for_user_sitf&""�Fix the =�p if "--?�" was used.#>�!�0����v�.ENABLE_USER_SITE>Return���create_home��o�@basejfmsg = "User &�p �� Platforms6msg��d��Oplat��Rpscheme_` = os. ��.replace('posixunix') + ''A��rselect_M�(�T�(expand_attrso!, �1for�1 in� val = get8�C��G0if )�l$��C == ��B�:nt'8�:����_��= os.path.expanduser(val) �val = subst_vars&�, self.config�8�setattr(*� , �!, a�b�def expand_basedirs*�!):���"""Calls `os.path.1���` on installA�,�@platS�E andL�root."""���"._Q�_�Hs(['Q�5', �S����J�A']) J���) =� ���A = [f�� ���urelib',�?lat��headersY�oscript�Gdata;�]�m���E<run"ifeverbose !=�distribution.�5�(log.set_�1ity[�,�:try9�for spec inl�Jargs#��`��Seasy_1(5�R, not7�vno_depsj��6��nrecordV�poutputsl�\�D�C���G�oot: # p any package prefix:��>��_len = les.� ��*����pcounter`range(8��)�0��#�[@�L] = �[z���:+C�Pfrom utils import file_�-���xecute(�=�p.write_�", ,�)Z�`���"9�ing list oft!ed�s to '%s'" %��k� � *�@warnIrecated_op&s(+�kfinall�M 8�pseudo_tempname"""Return a +�-+� ndin the�uectory.�This code is inten��� naive; if a malicious party can xEe toL��k�ftargetj�� you're alreadydeep doodoo� 0pids.getpidlexcept E�:ion8�prandom.�int(0, sys.maxsizerJ3joiP_dir, "test-h-�-%s" % pid&�CBpass6�check_site_dir(sself): �4"""Verify that self.install_dir is .pth-capable dir, if needed""" J� 7��3�= normalize_path(U�)~�pth_file = os.-�c.join(K�, 'easy-�0all�&')q�"# Is it a configured, PYTHONPATH, implicit, or ex �A sit�?�0is_��=�"in� �s��8ot <�cand noGmulti_versionr�/# No? Then directly test whether�2doe} #processing��K��=�`check_\4�(uLelse�make sure we can wr%to target� w����t�pseudo_tempname() + '.F�-,�'>�w_exists�(/��[����:try���!if6K� ��$�os.unlinkY�$�5pen�, 'w').close7�(���P� except (OSError, IO �u�G���Qcant_)B_to_o(g*QCan'tall non-1 to �� �raise Distutils�no_defaultj_msg()� "if���];Non'�P= Pth�ributions(�,R� 8r=�0 = � �k��zin map(, _python+()g# only�^s.! ay.py, so pretend it's e"��0py_�alled = Tru)�$elS TY� �k� ` # doD�� in this cas��`�D���H�create aW��� '__, msg = textwrap.dedent("""O�cp�or removes�s�j��bectoryf����The following e occurred wh0try�`to add_ _�&thk�ap�:q��u�%\��5� you specified (via -"---prefix the distutils default setting) was: �%%s�""").lstrip()&�__not_exists_id = textwrap.dedent("""A�This directory does not currently J�. Please create it and try again, orU�choose a diffeH� installationp�(using the -d or --*�6-diQ� op8�%).b��access_msg� Perhaps your account�have write�ess to t(P? If��� �is a system-owned�,� may needd�usign inT� asc� administrator$`"root"���.�ayou do�5�6iveS�#�m��vmachine�@wish� P�:, preferably one that is listed in� r PYTHONPATH environmentP�variable.�For inform]on other s��0onsC&th�@docuj�D�)atS"https://setuptools.readthedocs.io/en/latest/easy_V.html�"0mak�e appropri0changes for  E def cant__to_target(self):C��7.__1���% (sys.exc_Sq()[1], ,��S_dir,J�~!ifTos.path. ss�.2���5��k�+= '\n' +_� �Felse�=�:�raise Distu9Error(msg�/heck_pth_pro1ing�� """Empirically verify whed.pth files are suppor��.P��Rdir =���0allV�Alog.~ "C���g�b��0A%s",8Edir)>�����b�pseudo_tempname() + "P�3ok_2�=�u+ '.ok'V�#ok2; = >��tmpl = _one_linerQ� im&& o��f\�Spen({S�!r}, 'w'[�'�.M('OK�jclose(0�� ! +m�:tryU5if � ��s�os.unlink(� b�0dir[���/� pkg_resources.py31compat.Sdirs(?�, exist_ok=True)' �f = open(pth_file, 'w')$�except (OSError, IO �%):#��N� self.cant_write_to_target(K�:lse6�:try��K�!f.C� (tmpl.format(**locals())P��-���wf.closej�������INone���executable = sys.� ,�if os.name == 'nt'��T�0dir%�`, base ��Zs.path.split(e���B�7alt4�Ujoin(U�'pythonw��7��Buse_C�(�$��.lower()�[�Z�O and=�o�exists(alt��3if �@��##� �� to avoiding a console window�n} = alt *� from distutils.spawn import �3��&([\�`, '-E'�c�pass'], 0)<�IB!oks L� ��log.info "TEST PASSED: %s appears61sup�P.pth =s",�g���instdir �return Tru^ofinall�Oif f2os.unlink(Z �S�T�)�U�qif not multi_version��Rwarn(CFAILdoes NOT  uRFalse`1def'�all_egg_scripts(�,�@"""W all the .�` for ` `, unless��are excluded"""� �}��D{�.metadata_isdir('p�'��~���_8+in?�!liA��E�+if5� t�C/' +�e� ��B���r# The "� " is a directory, likely a P% 3�=��# __pycache__?�so skip it.9�kcontinR�V��.���,�  dist.get_metadata('scripts/' + �_name) ��self.install_wrapper_<� s(c�!) >��def add_output(7�, path): ��a�`if os.�p.isdir( � ��$� for base, dirs, files in:�Owalk4�8��,����/�� �s{��#����.� s.�4nd(�Rjoin(��B��N�) JelseT�L��not_editableGspec�1if H�&� c� raise DistutilsArgError(W�"Invalid argument %r: you can't useO��s or URLs "H�twith --� (except via the --find-links option).H�0% (�,@��0_check?not  Returnp�a�fjexistsjbuild_directory, �W.key)�M�}%r already w��3%s;}Qdo a �0outF]re" %|2��,� �K@contextlib. �qmanager_��@_tmpq����p = temp@.mkd �(prefix=six.u("easy_'-":try # cast to str as workaround #709 and #710 �2��o��Pyield?�(��kfinallr�u4�[�rrmtree(�T_safe��, deps=False2?if  �c1site_py(p���]%�)(� Mm�!is{1nce, Require��]��� ifq_SCHEME2�%���)� # It's a url, download i�Gyprocess�@���� �,�Bdl =package_index.z��", z��g��rE�ll_item(Non3l?�g, True}H�.el&�*EJ1ingA�<<Sjust %�>�/ly1� ���ps, True)  �ielse: � �spec = parse_requirement_arg(�)) 8�self.check_editable'�Q��qdist = -�package_index.fetch_ �ribution(`��?��w�, tmpdir,E�supgrade�z�,;�2not1�always_copy5�Rlocal� 7�)�0if � is Non5�msg = "Could o�rfind su =�� for %r" % � h���-if��t�+= " (--�-� skips system and develop} eggs)"u� raise DistutilsError(msg#el  .precedence == DEVELOP_DIST�# .egg-info s don't need installing, just process deps�;"� /�K,_�,;�, "Using"��aareturn,� a�.�z��Q_itemr�.E���$4def�9�Aelf,, download:�,1��$ed=False):u2# I9ax��AalsoS�Uf file in00 or$�� an��i�+ =z��9��a:<�os.path.dirname(�)7O���C�.endswith('`'� _ �T_from1��G��D �normalize_���� 9� )�z��C�r����� � v# at this point, we know it's a l�x&�f�#7�dlready!9ed.&��$ne�Z[.project_ ]���@�M�".��2�Ybreak� + = True �MC thek@log.2("Pying %s", @base�?�id ���s��` !�uJ� ]��#�self.process_distribution(spec, �, deps) �Uelse:����&�s = [self.egg_�K�download)]6�-�zprocess1�|�Bs[0]�, "Using") F�0if +� is not Non�1for�1 in�s���!if��"��L�!��%�RreturC�~�def select_scheme(�v, name)D�"""Sets the install directories by applying$�T�Us."""�R# it'K�caller's problem if?�@y suN�a a bad�!?�S� = INSTALL_SCHEMES[��20key!�V_KEYS��@attr6�C = '�_' + keyo��(�`if get.�� ��9�)�4�s1�", �S[key]�>elf, requirement=True, *info�.update_pth(�package_index.add%�I�Rlocal.�[O�.� IX�(�{.removeY� &�|�#��scriptsJ�'�ed_projects�! = @log.*.:�a _report(g�\>1if �.has_metadata('dependency_links.txt') and������rno_find1��%�!� 0�(X�5get��Y�/es� @� ����%���always_copyOO�Helif��R��"R���(!=(��R Y��warn("SkippWg�p�2%s"��?� # XXX this���� we were lookc�?for� ���(in� �#�b�ound up with a different versionsolve what we've got����#eqG.as_(2F = R@A(strFreq)4��m""P� ou�@�+tr�oI0WorZSet([]).re�[Y� ],'f.P�Seasy_ �) except DistributionNotFound as e: �Qraise-�utilsError(str(e)))�except VersionConflictN�e.report(R�if self.always_copy or�Z_from� # Force all the relevant d��os to be copiedT�activated���1for2�1 in�:rosh��%�!if�.key not,��installed_project<���@�-�Seasy_2�(�.as_requiremenlog.info("Finished processing dependencies �W%s", K�!) �def should_unzip(�,�)�zip_ok is�<Non"Qeturn��H�.0�i���$ has_metadata('not-zip-safe'u��2�rQ�HTrueF��a J�F�Z�VFalse maybe_move Bspec_filename, setup_base�dst = os.path.joinC�.build_directory, S��'4%if8�exists(dst[�� umsg = (����"%r already =��{A%s; y� y� %s willbe kept"O���Y��`warn(msg���/lf�� T�g2��Qisdire �@�! =)�P�;elsb�0dir d�7 ==����os.unlink8� # get it out of^0tmpn��B�contents@list�� stif len(5�)�1���Z�t$, I�:[0]i����1���2# i�ponly thkPtherea��D�!�*eaQ�J���Vnsure?c sh.l�(M� , ?%�6dst��all_wrapper_scriptstexclude-� f�u��s@argsS]�Writer.best().get_ �Zl�@lf.w/�k� (*+����", �_ �text, dev_(=None): ("""Generate a legacy script wrapper and install it""" �spec = str(dist.as_requirement())*�3is_V�= is_python�(�c_text,}�v_name) @�f7�)�:���@body�elf._load_template(dev_path) % locals(��<�P�y�A = S�Writer.get_header�@) + q��sw�w3� ���, _to_asciiE�S, 'b'�@staticmethodW�Odef ��pThere a� couple of Rs in the package. Thisr�� function CBs onD�1hem�prepares it for use.<��$# See https://github.com/pypa/setuptools/issues/134Q�EinfoQ�C# on� file naming�downstream C� with SVR4@��}B = 'e.tmpl'�4if O�6���.replace('=�@, ' O)��5�raw_bytes = resource_string('� ',�eureturn ?�.decode('utf-8�  ^9elf$, contents, mode="t", blockers=())�1""" an executableb!to2s directorytdelete_b�( # clean up old .py/.pyw w/o a~�4@[os.a.join(V�x�_dir, x)xg�]A�C@log.72("I�##%sr�{ to %s"- m�M�target = � ��$<�U�add_output(L�%1if $�vdry_run� mask = current_u�`ensure*n��L���%if�dexists"� w�os.unlink�bPCopen�q, "w" +_j) as fJ�!f.(UchmodF�0o777 - ��[Q_eggs  , X , S_�n, tmpdir`# .eggAs orslready builRro just i�m�� 5istg�.lower().ends  ('e�'w��dK�[�M��/elr�/xer�/xer� .lower().endswith('.whl'): �$return [self.install_wheel(dist_filename, tmpdir)] @�# Anything els#�ry to extract and build2�setup_base =Q��if os.path.isw� �)O�Inot �D.end�,py�unpack_archiveQ��!, �+�progress)�)el�:dirH� Q ��0abs� 9�JFif (9�b.start�v # somenwe downloade]�w�|_directoryAspec is IONone� E�maybe_move(<�,�=)�# Find the �@.py U�_script =Gjoin 1, ')�.^�!if�]cexists7�S��s = glob(8�m�)*'r��[v��sE��raise DistutilsError(��"��"Couldn't f%a# � in %s" %;��Pb�� �#le_os) > 1�*sMultipl�s�Hz4�9s[0Now run it,�eresultW"ifeditable log.info(treport_+� ��)kw�%[]o��! c�$�a�Cand_ e�def egg_ pributio1lf,��m �;� $��4metadata = PathM�(/�,���E��'EGG-INFO'D.�5Egg�Pzipim. �%er�R�n�0U.from5�$, l�= ��uA_eggpPxpdestina  3Z�Idir,��7��)(�t�ion = os.pat h.abspath(destination) �if not self.dry_run:��$�ensure_directoryG�+�bdist =H�@egg_�@ribun�(���w�uamefile"�(, � �`if os.H�i.isdir�A and�#�Ilink$� O���dir_util.remove_tree3�#, =!��D�'el�hexistsC�)v�L�execute(B�L��Pos.un�,�`�/,)$� "R�xing " +V/� �>try�1new_is_zipped = False�W���4if "�.startswith(tmpdir>��4���@f, mrh�, "Moving"��1�Oelse��� O�@copy , "CopyT�should_unzip(�-� mk ������ unpack_and_compile, "Extract��>Tru��2 ha f��-�m + " %s to %s") % �[�vbasenam4�1dir3�L��]Pupdatst_caches�n�0fix importerM�=b?� �except E�+io� ��� � l��N�eraise B/add_outputoreturn�)X�def install_exe(d� , _�-, # See if it's valid, get data�rcfg = e@_wini�A_cfg|�_filename)  if cfg is None: ��raise DistutilsError("��*�0"%s?�not a valid d3� Windows .exe" %�_filenameK�)�# Create a dummy5�ribution object until we build the real,�oL���! =�B� ���,/���0prob�_�=cfg.get('metadata', '�*')6�version1��'), platform=get_ �(M�%) �# Convert��C to an unpacked egg.�egg_path = os. �.join(tmpdir,.%���`() + '�'y�-Q.locai=^�R� c�Ftmp �F�Etmp'$�_c�Linfo���tmp, 'EGG-INFO{�|pkg_inf4�M�], 'PK6�ensure_directory(G�) # make � p� dir exists��_provider = PathM(��[�5XXXA�@self0_to%�(Q�,D9tmpUWrite�/�S�0if N�� 34pen�G, 'wX�0f.wq�$('�"-V|: 1.0\n/�or k, v ing.items)��b�if k != 'tar*��.�� %s: %s\n' % (k.replace('_e�-').title(), v)C�fclose(�`script D &�s�# delete entry-point '�n voFupink8�_blockers([��P���, args[0]��.�1for��tS�$r|_2�W4�?�1# B� Zb from �b@egg.@_zip+� ��7, verbose=� �, dry_run� ��# installqreturn X�%�>��8tdef exed�7�j�u"""Extrac0wino���3:0iesXegg would use"""?# Check B.pthi and set up prefix transl@c�Pes = ����:�to_compile = []�native_libN��top_level = {}C�9 process(src, dst):  �s = src.lower() �� for old, new in prefixes:&��-�if s.startswith(old)&��*�Qsrc =Q�+x�B[len.�]U��/�pS��split('/'��'���dst = os.path.join(egg_tmp, *H�8�l = dst�Y���if dl.end�'.pyd') or�Odll'��G��[-1] = bdist_egg.strip_module(#���F�top_level[�3ext>�`0])[0]e�1V�E�native_libs.append(srcu�/el��`') and! != 'SCRIPTS/'�s��2to_compile�?dst�`return `if not~ /thlog.warn("WARNING: can't process %s",L� �{�UNone }�# extract, �Pking Iw/.dll->Zv.py -> �I��unpack_archive(Ifilename, ��@stub[m�0res� dif res  5�: # create b��U���%'s�����! =Q�resource = 2��4L���N0 + 'F�y;;pI�n����%� `write_5�(,, \�self.byte (�)$�` f�afety_flag(Y G'EGG-INFO'),/�X�panalyze��!s)��a zip-s|� |�#�:��'0G', ' cif locals()[<�]�/tx� , ?�)?txtg�:exists(txtfV0pen#�O, 'wS����!f.R('\n' �)�/\n>�rclose()Fdef install_wheel(,!, �_path, tmpdiSr): �wheel = W�(�e_path)"�qassert ��.is_compatible(%�destination = os.D�.join(self.install_dir,K�egg_name()G� 0absO�(e�3�qif not f�vdry_run���`ensurez�oectoryG��Yisdir&�A andf�#�Ilink$� u�dir_util.remove_tree/�#, �=��EelifGhexists?���D�execute(����Pos.un�,�T�.,) � "R�ing " +  +��:try � Ujas_egg[���� 2("IB���%s to %s") % �P�Abase�~�2�1dir1� ��)��� H!�kfinall!Pupdatst_cache, fix_zipimporter$�f=False[�gadd_output2%�breturn+�~distribu 2�)__mv_warnW= textwrap.dedent("""'���Because this W�S was ed --multi-version, before you canP�� modules from\�package in an applicv,D�will need toM�'N�pkg_resources'Pthen � a 'require()' call similarNeone ofQ��these examples,�Aorde+�select the/Sired �%: A��3 �.}�0"%(a) # latestAL�J�C==%(7�W�Texact�Q�>Q�e� or higherU�`""").lm2p()O__id]Note also tha[RB dir must be on sy at runtime fo�to work. (e.g. by be�]'s scriptl�,-�oPYTHONPATH,P�1add� byvr code.�*!4def�0_reOa, req,i�N4at=7ed""""Helpful installation message for display to pack�users""" �msg = "\n%(what)s %(eggloc)s%(extras)s0�if self.multi_version and not�no_report:f��m��j�+= '\n' +*�__mv_warning,�f�install_dir`� in map(normalize_path, sys. �)r�v�%idv�w�� =6t.location�Dname�project_�!� A���J = '' # TODO:,_!�Q(req,�);�preturn @ % �Qls() �__editable_�= textwrap.dedent(ETcted 5� � of %(spec)s.P%(dir�")sh��J If it uses setuptools in it� script, you can activate9�iL "development" mode by going~�that directory\0run$&::���%(python)�C.py \�)�xSee the�@docu}�+�!��`" comm�Emore info.r�w�""").lstripDdef (( , V,}�_ gB = o.� (sc1�z��! =Qexecu �+ d# B�1un_p��|��base, args��xmodules.setdefault('distutils.J .b�u_egg', �I�@egg_4', � ��� = list( �b�Rverbose > 2-vQv' * .)�6- 1F�d�.insert(0, '-v$�,ell�<l��� C�&q'@�>�zdry_run� :�n:�@log.(��""R=t %s %s"C[lenl�) + 1:], ' '.joinF�:try�rE3tup3�except SystemExit as vJ�daise DDError("Sb@ exi@with�` % (v.S[0],)�build_and_K ���O�U = [''-f-dir']d���mpfile.mkdtempprefix='eggI�Ptmp-'/r= sel(f._set_fetcher_options(os.path.dirname(setup_script)) �args.append(dist_dir) #�self.runk�)upM�", [�`base, L� ^�ll_eggs = Environment([j�]/�+�)[]�for key in aP�:!����%��V�&�^[key]+��/��j���Cinst^�P.locaN� <pif not L�A and �M�~dry_run{�log.warn("No8�Pfound�2%s [  problem?)",��������areturna�;�zfinally�armtree�F����^verbosity(��e) # restore our log �2ityB@def 6 �I� , 6)�5"""�When easy_ is about to run b�egg on a source �e, thatK�� might have 'requires' directives, �5ingF�@addi1al n�ing. Ensure the�3er ` given��N�re available&���P commHas well./�f# findt�r�Jfrom3�L�Awrit�Fm ou#u�e.cfg files� eiN��.X@ribu@.get�ion_dict('�').copy(0�__E = (��'�_links', 'site/� �index_url��]Zmize' 2�allow_hosts(� ��K� on�%{}��Ekey, valw.items(��!if�"in�����,���continuen�����.replace('_�`-')] =�&[1# createettings ionary suitY��`edit_config`|�s7�=9�(=�9@cfg_%�S4 = ePjoin(��i�N'7�wsetopt.�(J�`�w�5update_ptht,1if 1pth��JNonevm1or l <�.+�drop old entries3�B�x�multi_version W�0 !S%st� ��F��Yinfo("Removing %s -A.pthF", dP self.pth_file.remove(d) �if d.location in self.shadow_path:3��B� &�b�L�%) 9�bif notZ�multi_version\���5istB�����s5���log.info(r���� "%s is already the active ��h�easy-install7/",L�Ndist� VOelse�"Adding %s to x� 0", i� W���vAadd((� # add new entry� [�'Rappen}�dry_run:�Wsave(@��"��key == 'setuptools']# Ensure thah+�0 it3 never becomes unavailable!*# XXX should this check for latest7?<��name = os.`.join(�.]X_dir,��n'%ifD�tislink(^�)��1Zos.un)����5penL�_, 'wt~��rf.write�qmake_rela>{o + '\nK�Eclosdef unpack_progressf�, src, dst�3# P$��1ter?�5ing��debug("U\�a7%s"[�2�`returno��=Conly�-and-compile skips{�!esz�rdry run�Cand_4��1egg>, destin_�$to1�U = []���Bhmod���l�?pf(#���,st.endswith('.py') andxrc.start�EGG-INFO/'��H������.*st.elq�dll') orR�/soe���c�2'!���6�q�0dst�BNone�1�W�archive(F, pf�X�Dbyte(&&�� �Cfm�>��� ���0mod>@((ost(f)[stat.ST_MODE]) | 0o555) & 0o7755 chmod(f, mode) def byte_compile(self, to�!):(��,�if sys.dont_write_:�Fcode$��(�breturn`����from distutils.�y import{�1�:tryR�# try to make the9� � messages quieter��~�log.set_verbosity�.�Se - 1 �-������( , optimize=0, force=1, dry_run=8. �)��7Delf.?� � r� <������s�V��A�� �,*��kfinallK ) # restore origC� h2ity__no_default_msg = textwrap.dedent("""�bad install directory or PYTHONPATHX��%You are attempting3?�a package�aN�that is notx�'onb� and which Python doe0� read ".pth" files e. TheM��0ati;��you specified (via --,�-dir, --prefix, o�M��K@ set�f) was:�&%s���8you@ environment variable currently containV�rV� Hevre some of c��0ons+@ corhe problem� * can choose 0ffe� A, i.e., ons* `or sups s ��1adda t��<�?�I. (It mustW�n also be�whenever:G runJ�s�@want� us�e1(s)8���Ging.�`set up�V�`�+ 'by� us�z!ofM� approaches described here https://setuptools.B thedocs.io/en/latest/easy_�.html#custom#A-loc �&s fPlease,�priate chan*!folr1tem�dagain.""").lstrip(G�)pversionP'�}��1 =  G( 0�!% K�.�_3os.f.get('zg', '')�8�sp� """Make sure there's a site.py in� target dir, if needed""" �if self.9�py_installed:"��)�return # already did it, or don't\�6 toZ�R� = os.path.join(m�f�_�")�U.py")s�source = re �_string("setuptools", :�o-patch@�>��.decode('utf-8'h�current = �pexists(�:py)log.debug("Checking 0�� ��2�%� ���_with io.openm� as strmu��.��� �.&()x�#��3ot *�p.startsf�('def __boot():'��<�raise DistutilsError(�"��"%s is notz-generated; please"G� remove it." %5�-py+��$if�B !=  (�info("CreatZitepy~-zdry_runM���`ensuredectory ��f , 'w', encoding=�r�bwrite(� ��byte_compile([u7py])%��r = True2�c#pe_home_"""FeI�ies under ~.O����KJuserHF2�p� = convertz�y@pandC�V("~")�for name, ��psix.ite)!ms�.config_vars���8���Q) and�`isdir(,� B��F�W_print("os.makedirs('%s', 0o700)E���@���2��"�2�INSTALL_SCHEMES = dictjposix=��V�Z='$base/lib/python$py_version_short/-packages',�`scriptJ�7bin$�)/�nsDEFAULT� ���?Lib�|�S��u�d ex+i, *att " =get_finalized>cmand('�(')?Z)jprefix0# Sfsefault I��:/�s from --=� g ��f.copy(���ars['base'] �= self.prefix �sscheme !� INSTALL_SCHEMES.get(os.name,C�sDEFAULT"�)L�for attr, val in ]�.items():-���`if get3�(�,>�None) is �6��:�s7��Uval) d��from distutils.� import subst_vars/������sx���=�� "if�_s not�J��(val, config� S���3if  == 'posix'��'���^�os.path.expanduserf�Y�F def _pythonK� =�qenviron$'PYTHONPATH', '').spli<�>�2sep}�return filter(!, S�1) s�get_site_dir31"""R>�a list of '+� ' ,�!��)� �����R = []# start with � /�.extend(�T< esS�3sysL]@�0if �Rexec_(�1 !=���`es.appj� 7�&�H)�� �e2if �X���platform<�('os2emxriscos'�.�?Rjoin(j�, "Lib", "-�-packages")�����"el1sep/��A��m[C�>�� �"��.�� � "l��1" +version[:3],4���)�)� �� �Yr"@��]j*se���\z���� � �odarwin� # framework builds *only* we add thendard Apple�# locations. Currently G�P per-, but /Library andG��@/Net�'�qcould b�med too6�Qif 'P.�'t�!ho9os.TZHOME'�.���0if 5�O��!��home_sp = os.path.join( �_home,"� 'Library''� oPython&� �sys.version[:3]S� site-packagesZ�)��B�dirs.append(�2_sp1��lib_paths = get �('purelib'),�1lat�j�@for Z�_lib in I�:��o&if"�0not&��2���%��)������X�!) L�H�.ENABLE_USER_SITEE��1��W�A�.(�G�?try2��0ext�B�@.get�n"()$except AttributeErrorK�Bpass��=��� = list(map(normalize[,�$�)�ereturn� def expand3�s(inputs)r�"""Yield G� directories that might contain "old-style" �3"""�een = {}��pdirnamey�x���*= �(�/�*� if�H�FseenF�� ���Binuew����$�[H�Q] = 1��0if >0os.�e.isdirr�W� @file0os.;�a�yP|�!, 3����� s���"�.endswith('.pth'��� # We only care about the 1�z�,��,����w�('easy-installI�', 'setuptools��XIgnor|�@!we=5rol#�s���� �j# Read� !�f = open(r�=l�e���1lin�(_�+(f)�f.close(O�<���"# &existing non-dupe, �`import;!y ]� from it�!or��&� ��m��!ot&�b.start"f�"|��6��M� K��t.rstrip�-��!ifk�0in :�1���[U� U���e�7��8�� ��', [�tract_win_cfg(dist_o�Q"""Ex+���figuration dataa bdist_wininst .exe Returns a configparser.RawC�P�, or None4�1"""�f = open(dist_filename, 'rb')"�Atry: ��k�endrec = zip-�._EndRecData(f1��(�3if +�!isu�C���r�����prepended = (>�S[9] -J�F[5]) �%6]�6if ;� < 12: # no wininst data her��k��������vf.seek(O�V- 12)�&tag, cfglen, bmlen = struct.unpack("<iii", f.read(12) tag not in (0x1234567A, �/B)+�t a valid tag���S(12 +��nit = {'version': '', 'target_�}e_cfg =` V(init� 7�\0parw�E/��"�# Read up to the first null byte.��.�0 = Y�.split(b'\0', 1)[0 �-�Q# NowT�7� is�V�s, but for 2it shouldz� # be text, so decode it�r�.'�(sys.get=�systemencoding(��1cfgCfp(six.StringIO(O�-�jexcept_ErrorI�!if�k�has_section('meta6 ')5� #�oSetup'd�h#cfgfinallTf.close() def exe_prefixes( ��0�q� """Get exe->egg path transla�sa given + B���\�A = [��r('PURELIB/8'),�0LAT�pywin32_/32*��qSCRIPTS^�EGG-INFO/scripts/o�DATA/lib/site-YHagesS�zzZipFile/� �@info� z. �Slist(Y����l0 = �.:��L������v@s = �~#'/3� ���qif len(+�) == 3 and@s[2]�2'PK '?�;�[1].endswith('.egg-� }�3���.insert(0, ('/'.joi�[:2]), ''O�C��Ybreak� �D!= 2" �?pth�zcontinu�7ame�{-nspkg.E� contginue �if parts[0].upper() in ('PURELIB', 'PLAT �)):;��F�contents = z.read(name)(�if six.PY3D� H�S�.decode(M�pfor pth�yield_lines(9����c��2�=8�.strip().replace('\\�./'k��9�cif not:��,with('import'n��9�prefixes.append((('%s/%s/' % (w,Z�r)), '')�vfinally*dz.clos W� = [(x.lowP, y) @x, y'�]�S.sortT�Urever`�treturn � class PthDi<butions(Environment`"""A .jPfile ) 4�` paths�ait""" �dirty = False�ef __init__(self, Q��\, sitedirs=()w��m�&�.%�% =0�c�!�<� = list(map(normalize_�`�<�0basx�: = 2�@(os.:�@.dir��� F�S_load�[�E.�[], None��3���q��H��s�1��"�0addOInd_d�:�, True)))��:�V�����[c�j�Bsaw_����seen = dict.fromkeys+�4if U is)�� ��b��Z�f = open%�0, '�*�0or -�:f`����!if�?.st ��; o��T���� z���s@ne.r[p�!���lI�7�-�$���4ath *� �#��# skip non-exis,Qcase somebody deleted a packagw��`# manu�, and duplicateT� as wellR��6 = N[-1] 8��t�V3joi/,u�U�gJ�  s(�)o��b���.pop() X/it�0�%�d�1� we cleaned up, so we're (�Tnow :� continue �seen[path] = 1�f.close() �if self.1�s and not saw_import:*��g�+�dirty = True # ensure anything we touch has F� wrappersN�_while{��[-1].strip()���D.pop�def save(�2�"""Write changed .pth f��back to disk"""�"if��� �freturnEArel_� = list(map��.make_relative,�())m�A� h�log.debug("Sav\3%s"F���FnameH��rlines =i�_v_�(b� 0�data = '\n'.join(.�1) +���\�Qif os)r.islink�� ��2�_os.un*����%�with openO�, 'wt') as fZ�0f.w(�'el�jexistsV��|�aPDeletcoempty i ���.= = FalseO@staticmethod.���o �D��2�1add�,t�"""Add `dist`1the$�ribution map1newA = (�����B�Q.loca6��"in[�/ 2�6� sitedirs orh��6�# account for '.' bein PYTHONPATH6� � ==zgetcwd(� ���m���.9nd(h�B�-���Environment.CremoR�_from  [ � �� ;��!H��G�� �kn�q, last ��.split(normalize(�KpbaselenP��6dir�@part#[`�]2sepm�1alt �Q= '/'�� or[5sep1�gAlen(�P) >= m�:lena�g��# =�&�:dir&��K�sgos.cur� pa�rts.reverse() �return sep.join(parts'�npath, last = os.�q.split(� /�B�.append(5��Yelse:���R� class RewritePthDistributions(�)K�@6�amethod\�def _wrap_lines(cls, �2��yield cls.prelude;���1for.�1 in�sg�����9��O�2��L�1ostM��Z�q = _one�Qr("""��L�import sys�sys.__plen = len(��F2""" �pn�a�Pnew =s�[_�p�%:]�?del"� p = getattr�, '__egginsert', 0����b���[p:p] = newi���9�a = p +�6newC��@ if~*environ.get('SETUPTOOLS_SYS_PATH_TECHNIQUE', 'raw') == 'rW' M/ =x1 RQfirstC_re(KRGa regular expression based on B� suitable qmatching�Angs. �b�if isinstance(K��tern, str��z] ,� U�#�in Python >=3.1.4 and �2.1 is a bytes patj��`�re.compil�.decode())K auto_chmod(func, arg, exc�0if ��[os.unlink,qremove]�qos.name#nt��Z�T�stat.S_IWRITEP��e�B(arg�et, ev, _exc_info5six.reraise(+�`(ev[0]3�[1] + (" %s %s" % �%))�update_dist_caches( ��, fix_zip#er"�Fix any globally H�5d `I�` related data�should be ah of a newly ]lled egg S�|r (zippe_Ror un�").b����_� contains finder objects that have been�AwhenF�1ing� from the original�. Any suchf�s need to bcleared sinceI�replacementL�` might`packagGifferently,�re.g. a *B�Cget e�d with an6�5�K�1folpr vice `a. Hav��%ld�0may��53useN�0to mpt loading modul6es from the replacement distribution using an incorrect loader. �zipimport. �er objects are Python6��s charged with ;�1ingc�data packa!�inside zip archives. If staleO�referenc�1theH�original�,�left behind,�y can fail toU�c modul O�$ . E.g. if an old�� rinstanc�uis usedq��Pa newC�tped egg�p, it ma�0use��Qoperato attemptV�1cat'� requested f� in=� wrong loc>�-N�pne indi<�Ad by*�K 's��0 di1oryG�ainformY�a. Such���3thetoutright, eG reJD havread a 'bad�l file header', or even worse'silently &�return invali.U_zip_�_cache contains �� for all existQs and1�Asuch�4s�0nec!toEsame� shf����L��If asked,y��>�punderly�Aimpl��ows it, we8!ix_�����#of�QtrackL�them down�QremovPm one@one,�AupdaZatheir dN�: This, of couAassumes thatkE�!&is@as a\bIf notk��?fixgstill do�qour besclear any remaind@rela=1ataN��m somehow )�Rr getwY�`�#L�91newP� <�0thu6��_sqail. No0at r�M��t� ?����$��fPcatch ry4rceivabluRusageBhere�G0onlo]��`e know��have foun� ca�problems�Zalive. Axs should be edL�whomever is in!�{���{��`, i.e.yN��#2y t"handle us;�ir zip archives with new distributions at runtime. """�,# There are several other known sources of stale zipimport. �#erK�`instan/�that we do not clear i��, but might if r� given a reason toO�cdo so: � * Global setuptools pkg_re�.working_set (a.k.a. 'master �L�set') may contain.Qwhich �uin turn(�Dthei�  loaders.m�0* S�/al/� held by local variables furN� up the funcP callpck whenAning%�,0lla4��`Alreadu�aded modut��@haveE�Rir __�R__ atV�.@t to"��Sexact� q�nce used�9�m. Python 3.4 docs�%teN�Dthis inform� �2ten�stly for introspeand so isM�� ex � ed�@caus� problemnh�lized_path = ��(W �)[�_uncache('�9�`, sys.C�_�1er_)�7�wif fix_B�s�_replace%�_directory'�\_datas�Z�FelseE�p# Here,gn though1wanfix exist�;0nowl��#1er �,V�dstill U�remove it. Relatw4P� 'sY� archive �]�o�c�Hweach ofM�!it=le entrie3 two phaseV# 1. C�G�0�y,aattempto acces�z��� via anyE+cs failx�G���2.9�@fromg� nylstructed�]~�0endS us=old��S�,��Ris wholeM�  �tep doesPseem c newGary,��1has been left in beit was done before arrD7ingO��Y?zipt!enpossible, anl�?no relevVunit tests we can depp tell us is  llFeded]_Fae_and_ directory_ca(che_data(normalized_path) def _collect_zipimporter_ca7�|entries:�!, �): """�wReturn F�'� F� y keys related to a given � �!. M�Alternative�) spellings (e.g. those using different character case orM�,�aY�eparators)�sthe sam~�1areJ�included. Any sub-��ies are #� as well, i.e�D�correspond� to2 archives embedded in other�sresult = [][�prefix_len = len)&�Pfor p`��Fnp =$"(p3���if (np.startswith^�A andb��/��6np[�: �P + 1]�(os.sep, '')S<��t.append�rh�nupdate �", 1�cr=Nonev�VUL��x�F > processed NGV� is a callable takt��1che� original�~�0(afPalready removE��/�Afrom>�P!),N�Sexpec�N�6�and possiblV�<a new one!bL0serE�in its place.I�n���� indicates that��should not be reC� d  o�N�one. If no�:,M��Asimp�BmoveQ�1outN�any additioL2ingL�WQas if[�%r Q�� 0ed � �|-�a# N.B. pypy's custom.L_directory �`ementa�Q does�P��e0supC�complete dict interfacer# * Does:�item assignj��4u"�Pallowthis func��# 9ueAonlyPexistA� Q�����.pop() method,Z�cL� usu�0use� �pget/del� s instead. For more detailf��? seM��$fo�XlinksF�� https://github.com/pypa/setuptools/issues/202# �comment-202913420 �#�http://bit.ly/2h9itJX%�old_entry = cache[p]�>del�5new2�updater and �E(p, U�)K�6if 9�is not None:"����& =.� def _un�(normalized_path,�)I�_�_zipimporter_7� ^�remove_and_clearB�_directoryD�\_data�y���9��C�N�z�dK�warchiveS�M��0�� �.W�1() *���:� ! .� �,9�<!r=q� �) # PyPy Python impleation doeballow �ly writing to the # � i so prevents us from attempK�0cor # its content. The best we ca��u�are is ��� problematic[A�! #�Bhave�repopulate it as neededi�qdownsid]�pthat if_�@re a�ny # stale��er instances lay#{around,�0useW�m # will fail dueR�d0hav=��Czip pory infQavailabl��ead of beC�AautoSally c edi������n�/ #p�. if '__pypy__' in sys.builtin_module_names_replaceE = \_�7�b else:a�h��~�@���)�L�# N.B. InAory,ould load�hO Ejust O�once for all d  spellings,then copy1loc;andP�2fDaineP� trN���!ai� G�}�a, but .seems like a way too invasive @ (th� P�btructu�aoffici�@docued anywhe1d cW+inK�0theXchange withreleases)Uno significan{benefit.`��� zipimport.zipimporter(path) �old_entry.update(/�._zip_directory_cache[B�]C�ureturn J� a�_T��I��G�(#���normalized__�/, � ,=�c�r=replace`�ds�_archive�"data) def is_python(text, filename='<string>'):k�"Is this � a valid P?� script?",�2try5���{compilea�, 'exec'F except (SyntaxError, Type ���M�gQFalsek�Felsel��FTrue�0sh(k�cutableL�"""Determine if the specified /� is a .sh (contain�#! line)""��with io.openy� , encoding='latin-1') as fp���magic = fp.read(2#!OSA, IO ���:���"�W�c= '#!'nt_quote_arg(argL�@"""Q� a command�� argument accor� to Windows parsing rules}�subprocess.list2cmdAm([arg]_M(�_� �awhole, a (as opposed�shell/bat/etc.&�%ifP.ends('.py') or�w%� # extension says it's�x�i� [��L�s3ctically`�V�c.start�(#!�# It beg��! a*, so check,'2'in it somewher�+�n"`.splits()[0].lower()54�BsNot any6� I can recognizofrom os h` chmodc_ � fI =z2# J�atibility?�$>�c(*args~��CpassH_�XT, modelog.debug("chang��` of %sR%o", ����f�}� $��@os.e-�� y��failed: %s", eqrclass CPSpec(� A�� for a #! header,2~�B���(s akin toK`those 6P!}$�options = []�)���Ddict%@�amethod*��sbest(cl """  �6Choose the best CommandSpec class based on environmental conditions. I���@""" ���return cls �@N�amethod� def _sys_executable(cls):��C�_default = os.path.norm �V(sys.9�)4�w�3os.� .get('__PYVENV_LAUNCHER__', a�)�from_param�!, ���Construct aI�D�" a;�eter to build_scripts, which may�be None^if isinstance(�,l��B �Y�<�Olist=�2clsa�e"if�1 is�u�@cls.�_�8(D�# otherwise, assume it's a string��Q� ���^ ~� _W� ([\� /)]�Ccls,�Dcc sd����SimpleD� representing a 1���a@line se5� by shlex.split7�xitems =)�(�@, **�=�V_args"A��|`ll_optr(self, H_texM��.)� �elf._extractM�G��1cmd�= subprocess.2��0��if not isascii(%��L�[:0] = ['-x']lstatic �Corig`�E�T any �zafirst �!ofI.�7= (v� + '\n')�J�es()[0]4match = _>�_"�a_re().�(�;�!= �.group(1) or '' if� else ''f�1?�.b'p(6as_header89�D_ren#�0 + /�C)Q�@u�_quotes(_QUOTES = '"\�for q in !���$�1tem.startswith(q) and _�D.end� 8��<���)�V[1:-1�l �B��P��Spec._strip_ quotes(item.strip()) for �1 in�Cs) �freturn '#!' + cmdline + '\n' # For pbr compat; will be removed in a future version. sys_executable = CommandSpec._s�() class Windows-�( �!):�split_args = dict(posix=FalseL�ScriptWriter9�1"""A�#Encapsulates behavior around writing entry point sK�sGconsole andM�gui apps.��c� �@tempa� = textwrap.dedent(r%�~ # EASY-INSTALL-ENTRY-SCRIPT: %(spec)r,%(group �aname)re��E�__requires__ =3� �import re�5sys�from pkg_resources 8�Qload_ _  4�Pif __��x�= '__main__'m���� sys.argv[0] = re.sub(r'(-U\.pyw?|\.exe)?$', '', 5�N�Uexit(����� �(= >0 %(�J)r)(X��c""").l6�!co__ &�@�Rmethodef get_�(cls, dist, e=None, wininstB#tbackwarduibilitywarnings. �Q("Use|��"�", DeprecationW)���5�cer = (z54 if�h else �g).bestFAheadK�Gcls.��8(""���r�A���(0E�)m-�o��vH~�x Z� = "python�"�`cmd = d.v_param(Q�j@cmd.m`all_op's(()��0�2as_����7�q�?�BYielxe0() argument tuple{a>@ribu�'>�sE gui� �2if �@ is  �y��� a = str4.as��&()V�Ptype_'��;gui<�B/�4+ '�'��for name, ep in dist.get_entry_map(group).items(): �cls._ensure_safe_name(�),�script_text = :�template % locals(6�Cargs/�_�F���(type_, o�, header, !��g�N�for res in B����Pyield'� �@staticmethod�Odef �R�1"""-��R�Prevent path}�"*_�!s la point�%s.6�B�@has_>� _sep = re.search(r'[\\/]'�8if 4����raise ValueError("Path separators not allowed-��#")[class� writer(cls, force_windowsA#� backward compatibilitywarnings. � ("Use best", DeprecationW%��return Wt�SvW�.>�P() if~��Q else!��!�(cl�Select th� ~��t�@ thivironmentpif sys.form == 'win32' or (os.�java' and os.�7nt'n w� 0<�?cls j�# Simply AEstub with no extension5q* +�@6="", executable=NoneP`"""Crea #! line, getting op�s (if any) from�13cmdcommand_spec_�.@�_&m(�cmd.install_|�(�)��0�3as_�A) n�1(��$ =<�C�OSpec) $W��O�v !�$1sui2��pr_lookuUdict(*��.�=I�ELauncher,8�natural=�eqtibility, use the executable launcher by default ��= os.environ.get('SETUPTOOLS_LAUNCHER', 'Y�%')G�return writer_lookup[\�!] (�@classmethod� def _get_script_args(cls, type_, name, header, &�atext):A���"For Windows, add a .py extension"+�ext = dict(console='.pya', gui �Aw')[}�]6� ifL�w not in%['PATHEXT'].lower().split(';'���umsg = (T�����a"{ext}\�`listedc�W�;�as will$�6be ��@���"recognized as*s.-�).format(**locals()�J�warnings. �(msg, UserW�,�told = [<���-0.py�C.pyc�o�w�Fexe'^old.remove("� = cls._adjust_�(�blockers��: + x for xV6oldv�Qyield_ +M�# +u_ft, 't', X� �Corig�&"" Make sure 'pythonw' is used�qgui and�"� !�4 (regardless of what sys.U is).8��pattern =��7�',�Frepl� �"if == 'gui'�_[�#, D���#, �a�� _ob = re.compile(re.escape("�)I�.IGNORECASE 3newr$ =`��_ob.sub(string=�G�0pl=�C�J�"if3use]�(�w) else V�-lstaticD�.zShould ���Caced%?w��nOn non-w��0tem"Alway^E. OnwB(�Oonlyg�� if it resolvesE�Wto an1 on�osystemqScleanR6 = Tp[2:-1].Np('"m�@plat != 'win32' or find_(e�A) 6E*L)W(S�D 0an � launcher """ �if type_ == 'gui':��"�launcher_%� #� "�0ext�-script.pyw' �old = ['�]�Oelsek� :cliK� k� �j�0', q�c�&o'y� hdr = cls._adjust_header(�2_, �)�blockers�name + x for x in old[�syield (&�Pext, n�"+ !_t�T't', V�h�=�x��~J�'.exe', get_win_( �)),<�'b' # write�binary mode(�~�if not is_64bit()# install a manifestDthe � to prevent Windowsj��� # from detecting it as an]�er (which�@willc� C�n�s like easy_��'). Consider only?�0add{� ��s� ed�W�Lers.G�See Distribute #143��?�;ail0�!m_!= �!+ .H 3�e, load_3�c), 't') #{�backward-compatibility 50argSW+r.�/� ? = 1�!�n def�PGqPLoad 3 (executable) sui ���!. `a�` should be either '82 or,�qReturns|�j��pa byte "ng�z�Per_fn %s`1' %1�/if2 9��.replace(".", "-64." 3�% =%<_fnA�$32A�r� resource_�('setuptools',J��8�a ut = pkg_b�$s. �l�_T__, '�-R.xml'�if six.PY2`���k�r% vars(1�  +�.decode('utf-8') ;�rmtree(path, ignore_errors=False, on�=auto_chmodj�shutil.I�C�Tcurrent_umaskKtmp = os.�R0o022��2tmp�z�3tmp]bootstrapN�# This function is called when *.egg is run using /bin/sh import setuptools � argv0 = os.path.dirname((�0.__�a__[0])4�@sys.8�`[0] = �0�.append(�3�main() def ���=None, **kw):C�Gfrom� �!�T.dist&�Distribution�hclass �WithoutHelpCommands( ���2common_usage = ""T�����_show_help(self, *args��+���Pwith F"chO�(g��!����.]� �!if{@ is G@�I��Z5 = 21:]2�� (d�E���pscript_�=['-q', 'easy_install�a-v'] +�,=��M=�\0] orE� 7��=� n��CH��h@contextlib. �qmanager"��utils.coreU�USAGE = Q��wrap.dedent(""" ��-'B: %(6`)s [op s] requirement_or_url ...;�Y or;� --X!�`""").lpE�o��#get�_mZrreturn �o% dict=@baseC� O�h)Fsaved = (.���: = )�6tryQyield@�gfinall�Q�� :&��convert_ (�#�;log�t.errors!���T�!sOE� 2$os � sh$� K�Rkt.externL�=six#��1  rotate(��"""Delete oldersD"de0iond2� , keeping N newest filesSuser_A = [\��('match=m', "pat�Qs to �# (Fd)")I ('A-dir<�d<�directory where the�J areE���A�kA�number o_0tch��f����2�D�xboolean���binitialize!���.�=���__dir ����7��s�q�1if Z�t�  raise DistutilsOptionError( �-"Must specify one or more (comma-separated) match patterns "M�(e.g. '.zip'I�z'.egg')*�)8�if self.keep is None:���raise D� �number of files to V�"m�:try\�{�e= int(�4�except ValueA B�� --� m_Pbe and�Geger�if isinstance�d, six.string_types)y��+�I = [2�6convert_path(pI�p()) for p inv@�.split(','��C�]U�l��set_undefined_oRs('bdist', (' �v_dir', �1)) G�qdef run��Z�Arun_jnd("egg_info$from glob import �W���� � 1" =���@ribu.get_name() + '*' +��f���X=�@(os.]B.joi�.S��,=�)Q?�[<�getmtime(f), ff�+�}�o.sort(W��.reverse(p�2���@log.OA("%d#(sing %s", len(p�)��%�[�:�Qor (t�!ink�s �UDelet�f��+�cif notnry_runP�)�wisdir(fa�!�� sh`.rmtrew �)�;els��� os.unlink(f) """setuptools.._egg Build  sas""" ����0s.esSa�| 1�@dir_;�3�premove_�@, mk 3�*�2log�\�CodeType i4sys �o �r�textwrap$�smarshal� ex0f�3six#�pkg_resource��b6_platform,;, ensurekbectory�M�EntryPoint%� �Tnsion�TLibraN�)��C End G# Python 2.7Q>=3.2RsysconfigB����!, �<�_2ion�'_�wurelib(breturn;��""p$�3") ImportError: from distutils.sysconfig import get_python_lib,�version def _-�urelib():���hreturn;��!�False) ;�strip_module(filenameC�if '.' in �[�� = os.path.splitextG�1[0]�%ifB�.endswith('u�'m���U� �B[:-6E����orted_walk(dirM�P"""Do�����a reproducible way,�ndependent of indeterministic�system readdir order<�1"""��for base, dirs,5��u�0os.�����%�q.sort()?�����s�^yieldZ��write_stub(resource, pyJ��_template = pwrap.de�(���� __bootstrap__H�!�yglobal $�, __loader__ ��}�%__��7�sys, pkg_� s, +�"__@�* =*�.4� ��0(__��u�&%rF�p�� = None; de� �@imp.�_dynamich��m� a""").lW��b open(, 'w') as fP.($% ��pclass b6_egg(Commanddescription = "crean \"egg\"n@ribu"�">auser_o4�Us = [!('g�-dir=', 'b'1�d "UPorarypectory t�zing theo�)?� ('-[�Pp', "�Pform � to embedFgeneratedY��"s y���"(default: %s)" %dbuild_h�)()�exclude-I-1s',A� "remove all .py�!s ���Iegg"`�Pkeep-6�LkL��0�pseudo-installa tree around after " +q archive��:d�3dirto put final 6tJs inV�Pskip-)�d3���1 re���peveryth �(3testing/debugging)]�]boolean'=X�k��';Y��initialize`�S(selfR�\��. _UG���Ts ��� = 0 self.dist_dir = None �s�skip_build = 0�egg_output;�exclude_source_files)�I�def finalize_options(v�!): ���Pei_cm|���.�Dget_@�d_command("�einfo")F�=�0gg_�2 = H�.*� )�1if ,�b!is����bbase =1��')�1').�_1�k��H� l��= os.path.join(5�, 'egg')�plat_name �a�$� = �_�Wform(V�/�set_undefined�D, ('6', �)G�F�`!� �# Compute �sof the 7�9egg1��B'�= Distribu7(%��Z�,,�<� �version,A��)spython_$�.()&�1��.has_ext_modules() and$�r m�)����]�D ��|��%, 0+ 'S�.�f�do_install_datae # Hack for packages that 5� 5�4 to�S's --�E-lib���:'0�3'). �D_lib?6dirUsite_��normcase(,@real5 (_z�purelib())Bold,�/����F, []��'item in oldQif is�@nce('�r, tuple1len�j) == 2;��%ifQisabs-�7[0]�'��� �:�5����Ex�[I��ZD�B�4��0if *�?�*= 'or�.startswithQ� @�+?sep��J��l4 = �[k Z�) + 1:], *�?[1]a��J�# XXX else: raise ???.�- q.append:try@log.!("/Tllingq3%s"" �c�i ', ce=0, root=None) finally: �self.distribution.data_files = old 0�def get_outputs(8�)K�return [�C.egg(�]=�call_command>��, cmdname, **kwM� """Invoke reinitialized >�# `9�` with keyword args"""���pfor dirc� in INSTALL_DIRECTORY_ATTRS��4�kw.setdefault(>�!, �b'U_dir)c� /�'skip_build'4��5�tdry_run2��/�Rcmd =�L F��<run(�Y�r'cm1run�# Generate metao firstk�"Vinfo"n�# We run inst lib before��\��, because some �e hackso�# pull their �path from�N��a�3.=�@log.�#("�ing library code to %s"��8��fZ�m'&�Fall'old_root =�@cmd.���2��v = None�f�bhas_c_�ies() and not,�{  'W_clib�� ��y�p', warn&=0� �� �f�IE, exV�T�([��@stub%[]! to{wpile = ��"(pe�� ) Aenum(e�����1�;��  s.f.splitext;��!���7� py9�0�2joiR.K , np_module(1�I�% +��K��G'.py�%�.append(� �Pcreat�H loader )�� �&ifY V��`write_V�#(o/@baseN�//, �� ��8Q[p] =<�_�.replacex�sep, '/')p6if a� ��rDbyte?()�@i�( R�0do_��(�(�a# MakeEGG-INFOeectoryutarchive2U�B&�h q>�ot, 'EGG-INFSO') �self.mkpath(egg_info�1if !�distribution.scripts:D��K��_dir = os.Q�U.joinV�2, '%�s��;�@log.w�("installing +� to %s",��`���=��call_command('F�_C�4', �Bdir=��I�,��M� �no_ep=1) (�m��opy_metadata_to��native_libs"&�V.txt"@�0if �\outpui.@writ+ M�H���cif notjry_run�%�`ensureectory(O��.���P_file�8pen.�[, 'wt 4�.�be('\n' �)�8�&� fclose("�Eelif is��) ]_remov^4os.unlinkz�W_safety_flag(r� N@arch\root, 'EGG-INFO'),1zipJ� yexists(]�, 'depends/')+�Jwarn���"WARNING:A�Q willbe used by setuptools 0.6!\n"�O�uUse therequires/extras_�L�q() args-�Jead.P� �xclude_source �#`zap_py?'s(F�R# Mak��make_zip4�(k�2gg_#, .�_verbose='� �d+� �S, mod>�gen_header(Okeep_tempbe_tree�b�#, h� u� 0Add('D)@���s' so that"upload" e works9rgetattr��D�z�2ist', []).ap "('� egg', get_python_version(-�)�Hdef � R A.py �` from Xorary dirMfor base,�#s,9�in walk_egg��7dir{�� �?�0nam ;� �#��x�base, name)  � if name.endswith('.py'): %� �log.debug("Deleting %s", path)3�os.unlink($� %�hif bas�__pycache__��L�a_old ={� V���pattern = r'(?P<�`>.+)\.�magic>[^.]�Opyc'E�m?�pe.match��R�,3��new = os.�o.join(]�����,,��rdir, m.group('�P') + /c'p��Oinfoa�`"Renamfile from [%s] to�"� % �hi__new)�?try4��os.removeP��F�u�except OSErrorP�OpassA�i��8i�7old�&def zip_safe(self�� = getattr�.distribution, ';�v', None 1if ?�ais not� �areturn%���dwarn("X�Q flagB�set; analyzarchive contents..."~�]�/�Re_egg�b�_X��v.stubs) gen_heade�  epEntryPoint.parse_mapZ��Y� .e'� _p(�gs or 'ep = epm.get('setuptools.installaZb', {})#�eggsecutableH�if ep is[a'w' #=8an G�, do it the usual way.��`ot ep.�ep.extras�aise DistutilsS�"� e# # (%r) can)bhave 'k�.' "or refera module" % (ep,��� �pyver = sys.version[:3]y1pkg.P�_4�full = '.'n��@�0&[0Z����N��9egg_output�: = G"#!/bin/sh\nt'if [ `[� $0` = "%(�z)s" ]\n'then exec python%(*z)s -c "-�p"importD�; �insert(0��0abs('$0'));"u%(pkg)s W��")sX�pexit(%({[)s())�m" "$@"�Melse� echo $0-�c�the correct nam e for this egg file.\n' �' echo Please rename it back to %(bas�)s and try againL�xec falsei�(fi�) % locals() �if not self.dry_run:���mkpath(os.�@.dir�(1�egg_output), >�=� �)K�f = open=�[, 'w'+�.write(header�fclose(�return 'a'�def copy_metadata_tou�, target_dir)�d"Copy -� (Pinfo)7the6�"�# normalize $�� (so that a ward-slash in_V�W willG� match using startswith below��m�_qC�$= ���{��.!�8�`prefixzPjoin(6�N�7, '��Q���pei_cmd.Alist �s=�%0if 3�.�(x�e�(��� ���,K�E[lenD�]��B���`ensure0�rectory(A�)�� ��(��.�3extsM�P"""Ge� of relative�s'C extensions;� distro"""��4alll�U = []�����Qs = {�bU���U: ''}%���>q, dirs,�sorted_walk�.A�����B��*���� � �'�%ifsplitext(+��7�)[1].lower()C�NATIVE_EXTENSIONS=�O���q.append s[�1] +�`���7� ���a�>[5�W�"U�J] = q� g��k��c + '/'f�<�#ifi�ibution.has_modules(Pbuild" ==��1finyd_command('(�7ext�t��0ext#��* if isinstance(ext, Library��^���continue/@full[6 = {�������b�.&�H@�!il$(I�@���i�_'dl-'�eexists�join(self.bdist_dir, filename)): �ext_outputs.append(7� 6�return all-�', :�H NATIVE_EXTENSIONS = dict.fromkeys('.dll .so .dylib .pyd'.split()) def walk_egg(egg��8"""Walk an unpacked egg's contents, skipping the metadata directory""" �b�er = sorted_�n��Pbase,9�sDs = next(+�1er)%�if 'EGG-INFO' in0�hdirs.remove((�;�myield f�W�pfor bdfQ�n�S�7�2df +xanalyze.s, stubs5# check T�Pexist@flag^��v���@, fn�psafety_�s.items(T��Bif os.path.W�$s(�DjoinL, �X� T�d���if not can_scanq�+�QFalse,���b = Tru��� P���D!��4���'��sj���.endswith('.py') or �'w'Y��>����#in����� el�:ameY�cZ�oZ�# always ), even if we already know we'reU�09�������rfmoduleM��SP and 3�H��`write_�9M��� 0# W(��FA zipW�0ty "(s)����?��I�^��Efn = "fnQ���#fn�����!if� is None�Pbool(�A) !=� /�7�os.unlink(p��:��O��S��NT�=T�f�pen(fn, 'wt'��o�!f.tM('\n�`close(U�z�4A = {�9p: 'zip- �!',�`w: 'not-�}p�m_)A"""C}whether 9� possibly uses un�@-forq��� ff����� s!if9�+�Q[:-1].� ��/�� # Extension�o�Qpkg =5[le�) + 1:].replacessep, '.x� = @�0+ (��0'.'< ''B�$�N��A)[0]z��s`ys.ver�_info.major == 2��@ = 8� �magic & date elif sys.version_info < (3, 7): �skip = 12 # � magic & date & file size3�Nelse=�6=�reserved?I�f = open(`�name, 'rb')f�pf.read(��code = marshal.load(f�f.close(�0saf)�2Tru�symbols = dict.fromkeys(iter_�(^�)@��for bad in ['__�__', '__path__']�$if,�J���^log.warn("%s: module references %s",�,I���:����BFals�if 'inspect'� t��G�G���'getsource�`getabs���� �B�Plines9�Bfind:���getcomment�getframeu-',K�Qinner!�.�8out�PstackX�etrace'A�}�� �#�MAY be using T. �L� preturn �~ def X"""Yield s and strings used by ``�its nested � objects""" ��H��� �@.co_�sl���ym�2�Xconst3��4�if isinstance(�b, six.�g_types;h�,�i���/elJ�CodeTypeB�� >;nst-��_��tcan_scan(-�aif not platform.startswith('java')i�!$� != 'cli'F# CPython, PyPy, etc.�lk Unable to analyze compiltn this {�"."B�Please ask the authorQ��include a 'zip_{'��`" sett(either �A or M)�U�package's0�up.py") # Attributeof options �ands that might need�b�Qnvinc� #_@tall��u�!egg build directory INSTALL_DIRECTORY_ATTRS = [n��E�@_libill_dir�8ata�sbase' ]make_zip(<� ��7�} seM�, verbose=0, dry_run ��Press=I rmode='w'`"""Cre?Ra zipC�{ !he�s under '��~�'. The output�>�@will��d3� + ".zip". Uses either the "8zipfile" Python module (if available) or the InfoZIP "zip" utility ,�installed L�and found on9�default search path). If neither tool isu�,J�raises Disto�sExecError. Returnsa�qname of �output zip �.I�"""�Qimpor��� � mk�@(os.�@.dirO�P(zip_%�� �), dry_run=�);� log.info("creating '%s' 5add�pto it",�T�, base_dir)�def visit(z, � , �1s):o��]1for�1 in�s�����4 = �@norm��Yjoin(]�)��=���%if=� is�(@���%���1p =U[len(�e + 1:]��)���dif notE �� ���qz.writep�:, p��!��nwdebug("]",�r�compression =m��.ZIP_DEFLATED if &�Y else&�aSTOREDK��zY�iipFile*,C%e,e�Dion=q�6ion��Qdirs,ssorted_walkZ 5)��s`�z.close(���A�|�2GNone�r�Z yd.command.register as orig class �(�'�p__doc__5rig�.�Qrun(self8��G # Make sure that we are usvalid currentbA/verS��F��U�S.run_�`('egg_#�'s�%� ��.��a __all�[Q�'alias', 'b"F_egg �1rpm �uild_ext � py �develop'3c'easy_���7, '� �@_lib&�`rotate �saveoptsP�s��Aetop~�1tes�D�c��W_scriF��I��0win@���`upload���b�c�)��f, ] from �Ub� t �3sys6�Psetupxs7�1�����P if '1in R�t.format��[=�Y] = ("uA.egg":D�s.appendgr') del� , � e%s�@ArgError import inspect import glob �warnings�platform�distutils.command.install as orig *�)setuptools # Prior to numpy 1.9, NumPy relies on the '_P�$' name, so provide it for # now. See https://github�f/pypa/|�/issues/199/ \�! =�� class��(��): """Use easyF�$to2�� package, w/dependencies""" C�user_options�.�1+ [1��x�('old-and-unmanageable', None, "Try notZuse this!"),@� single-version-externally-P�dM�4� "used by system � buildersn�create 'flat' eggsw�]I�boolean� ���'�|��Cnew_�pTd_egg_info', lambda self: TrueE1�scripts0�|�_nc = dict(�) def initialize#(|�o�./���.��=�.old_and_,! =, )�J___6�7���?fin�-�L���!ifhR.root_�������P�$elR�;� o�!if=v���G and�Zecord2���traise D ArgError(��%��"You must tqify --rY�0 or �oot when^3ingv"O�s �^`handle|ra_path]1�"or>"# explicit backward-compatibility mode, allow ext��?Iwork�ireturn.�E�a# Ignore]�L�N anp (or be�0runuanother�## - withoutFH�M�sT_fileH����� 0dir"''��e<run4# Eeareques Tstyle@? JfUdo it�.old_and_unmanageable or self.single_version_externally_m-�Gd: � return orig.install.run(L�%) +�bif notb�_called_from_setup(inspect.currentframe())k�2# Run in backward-compatibility mode to support bdist_* commands.��������Jelse���.do_egg_�(�@staticmethodf�Odef ��Arun_��1"""3��v�pAttempt��detect whether Tb) was > > >)`by ano,�N��T. If7�$by5�, the paq�r will be�F�'�K�"' ��'_`utils. �', and *its*O�K��q�O�sP� �Aany �A way�A�immediateb�p*might*�Y� ', but it won't have beenJ�F8by 8�Rs'. R@True�that cas"Aif a{�e stackN�is unavailLD�0Fal8��Uwise.0� if is Nonezmsg = "Callx�Lo�  may fail.[�_warnings. �U(msg)��� if platform.python_implemenon() == 'IronP �'��E�� For best results, pass -X:Fs en.P ��O������dres = Sgetouterw s( �E)[2]3�@r, =�6[:1�JinfoN�>���(6�D�_module =�er.f_globals.get('__name__', ''=��(��� R�,= u .����.function��%s'0�� �&):Deasy" =�@ribue���_a�_class('4�'k��Xmd = � ��|�N]�, args="x", root="�� �, record� �,��o��� cmd.ensure_finalized() # �s before0egg mungesC�2 cmO�always_copy` = '.'S�Pmake l� local-dir eggs getO�&ed\# pick up0�.��files only: no �-���package_index.scan(j.�0('*5�'')~<un_command('bdist_egg') �args = [self. � ribution.get_command_obj('b�?�.egg_output] L�if setuptools.bootstrap_install_from:.���4# B&� �-+�a�( oP� 8���.insert(0,v�)�@cmd.?�0 = �W���Frun(�$ = None # XXX Python 3.1 doesn't see _nc if this �nside the class �D.subq�(�[cmd for �pin orig��Q 2� if$�[0] not in X�a_nc] +N��5newk� ) import cutils..0win9�1 as�1 � �(� �)def reinitializez�(#, l�,$�C_sub�3s=0C��,1"""�� �Supplement6� Z�� to work around7�http://bugs.p�.org/issue20819*�m��z= !�B�����g�g� ('kdall', �W_lib' [�$md������`return!unsJ��._is_running = True�2try�T���.5�H��kfinall:��#� k�_False}uild_clibz�Bserrors ADistSE� 1�*�2log�s*�@dep_>�$�newer_pairwise_group��]@TOverrdefault b.� behaviour!dofollowing:T1. Im`a rudiary timestamp-based dependency systemso 'compile()'srun eveJ�..�2. Add more keys��'�info' dica * obj_deps - specify�1ies@each)�0ect��dy��` �2should be av�P mappa�� ;�� �AwithQ�source filename�a list of;�Hies. Use an empty strx��oglobalB�#�* cflags #�Q addiW"l '�`to pasC�����rE�y,��build_libraries(self, libraries): �for (lib_name, build_info) in2�1��8�sources =0�c.get('�%')a��0�3if � is None or not isinstance("�,�st, tuple)��J��� raise DistutilsSetupError(u��+��U"in '�' optioni��y '%s'), "@�� must be present and�@�a list oP filer@s" %f 5! =<�)) �@log.!("1ing��S�Qrary"]� 9�# Make sure everyth=�is the correct type.8��obj_deps should Pa dicS0ary�tkeys as A��3/�2���{�at are its dependencies���!',�*()T,ifv1�0�nt�'[ bk� :;'ddZ = []^Q# Getiglobal3 thspecified by.�j'' key# These will go intoz''y� A��{$= #w'/stE�i�B B to"usnewer_pairwise_group@�Ceachbe auto-added to �|�l �sj�4src[%�]�$�.extend( �-�TextraS�qI_�M�:�@L�P�B��6�!  "'obj_deps' must be a dictionary of " *��"type 'source: list'" % lib_name)=�1srcq�.extend(extra�,��dependencies.ap �(@�)) [�expected_objects = self.compiler.�P_file�)s(?���/s,�output_dir=\�build_temp/� � if newer_pairwise_group(�,, �) != ([], []):h�# First, �R the � code to � �As in#�libraryP��directory. (This should probably changZ�sputtingb�M��t� a 'ot� 7 h�Pmacro+�_info.get('�'2�pinclude8��>��_cflag8��2��T�3� ~ro]�ea�!�e�4�=�'�= �3�postargs=/�Rdebug � ���� # Now "link"`together into a staticd�P.e�# (On Unix at leatisn't really j��-- it justF�z s an archive. Whatever. breate_�O_lib  TG�+Oclib0� ) from glob import ��distutils.� �convert_path 4�*�command.R_py as orig*�$os �efnmatcC�textwrap�$io �]�UerrorA�itertools �Qsetup�n$rn�?six"�.six.moves,�@map,4ter�false try2m�lib2to3_exE�PMixin� except I[E�:eclass )�Z��,def run_?�(m�es, doctests=True�"do nothing" ^�build_py(orig.build_py, Mixin2to3): """Enhanced ''�"' command that includes data files with packages K�8The"�are specified via a '2�_J� ' argument to 'setup()'.M�3See�tools.dist.Distribution' for more details.� Also, this version of the�allows you��ay both�'py_modules' �Qs' inU�Qsame �` opera��2"""��def finalize_op"�cs(self�6ori..���-��<�.K1 = ��&! !� ;�!ex_C��jD�*�%orO����5{}))�@if '_?>�__dict__K�2del��[=�]V�C�rupdated\�M = ["�doctests_"�E��1run�@"""B3 ,,Hcopy1to < directory�bif not�QI��K breturnF�N�,ifF� 0��/()>��l�<�&s(�~�"�c�#�1runhV9.__v, FalseZ�3�?Tru2� ", 2���`# Only�pile actual .py, using our base clas0dea>w&ou# output?�B are�l��byte_como�(Bget_>�,a_5�scode=0)�__getattr__R , �Clazi�(ut"!if6�9 ==?�V��a <�y�� ����,� �#aix.PY2a`isinst(`, six.Ing_types>��# avoid errors on Python 2 when uni is passed (#190�E�m�$ =:.split('.')�0outP, cop%*= 'l�y��  �package) �if copied:���self.__updated_files.append(out�D�sreturn �,Q� Q�def _get_dataH�(]�)p�"""Generate list of '(�,src_dir,build ��}�names)' tuples"""m��analyze_manifest(��i�A(map�.�7pkg� , �.�s or ()))� 4�M�#, 4��P# Loc�� source directory��" =��:4������# Computew� *[����F� = os.path.join(*([�!�dlib] +N�.split('.'�v�VStripf� from globbed ��E = [��K��0rel�(*�#, �+�1for[�2 inGfind?��]t�V+�,8� ,e�c k��2F�B"""R��N� �y�0's k�s�'�'patternslatform_�(��&��,�� �|��y�s_expanded = 6�����-�@# fl�en the 5��/���to an iterableumatches�*�_�! =,�tools.chain.g_A�(.�g����m =bDter(h is,sj�;����o�d�y�c�]i�F.get6[])L���u�qexclude[�W���#es�c;� JCopyu"to}'�������K��Z��-� �s'��+�{target �� ��H�?�7����!mkG0dir-�(W�)5�� rc� q� k�B�:��Acopy"(sX�#, z�����!�y�1abs��r�Bif (M andR� srcf#ile in self.distribution.convert_2to3_doctests): ��>�_&�4�.append(outf) 7�def analyze_manifest(<�W���.�_files = mf = {}F���oif not��include_package_data�ereturnJ�psrc_dire�`�Cfor C��gs or (���# Locate5�source directoryp��.�t�@[asscrelative F.get�3ir(x�T))] =`�PL��run_command('egg_info')u�ei_cmd =1�a�finalized8�  thD�.Alist �s[0d, os.path.split(���)���prev = None���0oldP�f� whd and d != >���� ��R�,�9= dR���1d, l� �d��)���%�join(df, f(�@if d3�0if .endswith('.py')�Pf == �7��� continue # it's a module,� �mf.setdefault(�[d], [])���'�N�@pass��Lazily compute 1� $s_D�a) func_�Tcheckg�, ��}�@"""C6� namespacys' __init__ declare_)�5""":tryd&w!s_�3ed[�]?��except KeyErrorK�� ���py = orig.build_py.\��u� ��3 = k�|�,���'H� #� H�`��g0pkgU��  kg���pkg.start�W+ '.'�Y��Ubreak!Jelse��y io.open(�P, 'rb:s fF��x0ent)vf.read(]if b'k'4in ;� Q�@rais"stutils.eECs.Di�U(�����,"N problem: %s iIDbut  "i.ts\n__init__.py does not call declare_namespace()! Please " �'fix it.\n(See the setuptools manual under '=�$"Ne� Packages" for details.)\n"' % (p�),)E��qreturn �1py &�1def�ialize_options(self):"�����._�s_checked = {}#�orig.build_py.d�S�u�Cget_R�A_dirr�#, �{�jres = ^�<� �1if �distribu�.src_root iFNone���'os.path.join�.H�], resd6res�exclude_data_file`� , �Qdir, ��"""Filter�o(0's U��cs in 'J�6'""U� = list( ��ppatternd,_\latform_�(T�!)����,'�� ����match_group� t�!fn�!.f��A�D������ �s�.�@# fl�nz�1of k�eQ�to an iterable �N�,�=&�.chain.from_;�((��� baG2set �Jokeeper |��f �Qif fnein bad��# ditch dupe#1_unique_everseen(�"))@staticmethob��TH@spec �syield p-<�Pific ��Q(suit�EglobA�aor fn_z ) 0 a !�p-based Q� (such a�2 orHJg�4ing�|.�5rawa ? ��.get('', [])@��� #�� \�d# EachQ has to be converted�a��� 4 rc,H���#h()��9����8a�R) #Python docs n w`, key=db"List /� elements, preserving order.! Remember all elements ever seen." # unique_���('AAAABBBCCD�') --> A B C D5�BBCcAD', str.lower8��`� = set()I���A_add�aen.add��if key is None:���4for� in filterfalse(K� .__contains__, iterable)A��E��*��u�(�����Tyielde�y�?els�d� c�0k =�b���@ not��� ;������k��� � def assert_relative(path�!ifk�0os.�h.isabs ��S�preturn !��from distutils.errors import D�`SetupE� 6� msg = textwrap.dedent(""h�h�-�:up script specifies an absolute�:W��9���&%s�s{�r() argu must *always* be /-separatedN�$s q to the��Y�M�.py directory, *n*�%s.4��""").lstrip() %b��_raise$j(msg) ZSClog ^vcommand.s�u as ori'�$os1�%sy �$io��rextlib s��0tooTxtern{�3six#�.py36compat��{��_defaults b��pkg_resources !�_revctrl = list Dwalk�(dirname=''q"""Findfiles under revision �4rolJp= �.�_entry_points('��Z�0_fiZ�sz���N�@itemP�ep.load()���(���{�.� class (� ),F�"""Smart4�` that ��ything supd_ed by�duser_options = [���('formats=',9,�# "� �@ribuJ�! (q6�6)")D�('keep-temp', 'k'� "��W U�tree aroufter creat�7" +�parchive;e(sw��@-dir�)'dw��1put��a�0(s)3 "[:�]�]o1negT�qR = {}�README_EXTENSIONS'A.rst�"tx�Amd']�4��*�rtuple('�R{0}'.Q(ext)!ex"�g�)��run(self_ self.run_command('egg_info') �ei_cmd = self.get_finalized_com8�/�filelist = H�.�`� (�.append(os.path.join(:��, 'SOURCES.txt')�K��check_readme() h�# Run sub �s��for cmd_name in�4sub�Es():1��m�4run!�(B�t�$�make_distribution���_s = getattr(7���2�0, '�)�V', []����A��rarchive-� �data = ('sO�p', '', =�O���1if *�0notV��,�N��+���:�def initi/0_op�s�MQorig.�.-�_default_to_gztarR�q���4�p�# only needed on Python prior to 3.6.if sys.version >= (3, 6, 0, 'beta', 1c��ereturnH���p.format!['�"']���(�4�V�5"""O�Workaround E#516�(�Bwith�_remove_os_link��@staticmethods�@contextlib. �qmanager���|��SIn a C�", � and restore os.� if it exist�J�r��~class NoValueBpass��)���G_valPos, 'h�$',B� :tryO�4del�~�except E�:ion2���|��� P�ByielY��lls�5if �0is ��A�sT�=�_2_template_hack# This grody !� closes the :�O (MANIFEST.in)a 2# ion occurs during �@# Do�so prevents an error when easy_install at� ts`delete�!# �_� �  �I��_, _, tb:ays.exc=(K�tb.tb_next�frame.f_locals['��1'].k =�Rraise# Beginn'2.7.2, 3.1.4,L3.2.1, this leaky file Dhandle # has been fixed, so only override the method if we're using an earlierM�qPython.�has_leaky_q�A = (��y� sys.version_info < (2, 7, 2)%�or (3, 0) <= 2�}3, 1, 42�22� B2, 12�� if �:�read_template = __�a_hack .�def _add_defaults_p f(self)R�p"""gett@!� files"""G��0if 5�.distribution.Opure_modules(T��5�build_py ==�get_finalized_command(''�'��:���p���list.extend(,�.L�psource_$�:s()>�# This func� ality is incompatible with�lude_package_data, and���# will in fact cre~an infinite recu>�=incU� P�is True. Use of�v�mply thatD��utils-style automatic �8of ��zdisable�bif not�W��<����for _, src_dir, ��@nameu �_E��I�[os.path.join(e�b� �F����8�1ile�/])6� ::try��(jix.PY2���sW .�zh� OelseT��ouper()I�except TypeErrorM�log.warn("� contains unexpected objects".Qcheck"me�\�o�hvREADMES��4if xexists(�"���ereturna��%��8���"standardfound: should have on=" +A�C', '|Celf.�\�e�make_release_tre0, b��s/Qorig.!.=��z�0# S�rany egg^0 li�ps used tot"u��edest =o�'setup.cfgattr(os, 'link')AG��]�� # unlink and re-copy, since it might be hard-linked,,�' �# we don't want to change the source version9�Pos.unV�i(dest)�Pself.�_file('setup.cfg', .�/�+�get_finalized_command('egg_info').save_��v�H�def _manifest_is_not_generated(c�!):*���# check for special s�ent used in 2.7.1,u higher=�if not os.path.is��b�.�k��o�return False H�with io.open�?�, 'rb') as fp��K�first_line = fp.read�(~n�(+�%!=v��E���0'# �" GENERATED by distutils, do NOT edit\n'.encode())��o�{�s��q"""ReadBq�`(namedn�'4�� nd�%to�@fill/���alist',\�� �1 of[�spinclude1�L���ribution.�5""" �@log.q("reading �y'%s'", �|,�/= k��~���9� V# The� must contain UTF-8. See #303��if six.PY3Q���>try���� = �1.de'f�'��(���except Uni(�D.�_Error[�og.warn("%r>X� f�able -- skipping" %�u��y���EinueF��# ignoresQblankK�s.��� �Wstrip=�N�!if5�p.startsr('#') o��?���&.append(@��.close() Create a directory As defin�Rwheel@ficaG�` impora fromO� .c.�Cm #� �log class@��(4�$):Pscripz�T = 'c�.q-P�'3�auser_o3�Us = [�-base=', 'e', "��J.egg\�6ies� ��" (default: top9�@tree)"),�]��Qiniti� ���c = Non�@�>�Fpassn�"ruM�Z�D=x,inalized_command('egg_info') ��. �base = self�*�finalize_options(N��7run�Adisty�p_dir = l���e�� �[:-len('�-�')] + '.:���@log.#�("creating '{}'".format(os.path.abs�(C�}�E))) J�b�Twheel�Dget_�Rd_com9*�<���2O�(� , ��q import�cutils.g�.P�rpm as orig class �(�)�!):�1"""�Override the default<�� behavior to do%�following:e1. Run�*�RensurS�name and version are properly calculated.� 2. Always run 'install' us --�3le-L�-externally-managed toI� -@able�s in RPM�Qtribus�3. Replace dash with underscore:��s� numbers for betterY�t�compatibility`��i�0def�(+�Q## .�1ro 1is up-to-date>��+��:�F.rune:' �0�s����_make_spec_file��g���4. �3rpm�$ =".rV('-', '_�z�! =.��line23 = '%defineh�D ' + � .�4.��1��[�� �t�� ���"Source0: %{C}-%{}.tar",3�unmangled_=� <�)�setup.py - x� %�K!����� %`�y��7 -n%�j��A23, �44�������1] �insert_locpec.index(7�u24) + 1,� �D = "k�"u���.t�(��{�-, >��preturn :�a from I7toossetopt edit_config, N_saveopts(�o"""Save =-D�sa file"""  description = "save supplied o�)s to setup.cfg or other config file" def run(self):��`ist = �.distribuq�!�settings = {}K��8�for cmd in 7�.command_�:*��.�!if-�@== '�Vopts'��"���continue # don't -� our own�![����opt, (src, val)�3get�_dict(cmd).items(�{���if src == "�n line"��.�.setdefaul`�, {})[opt] = val�Redit_.Pname,d� �lf.dry_run) # -*- coding: utf-8� """upload_docs Implements a Distutils '%�T' sub�(�P docu7�a to PyPI's pythonhosted.org).s� from base64 import standard_b64encode&���)�;log�t.errorsJ��OE� =�$os �dsocket�0zipF�9tem� sh��itertoolL�Bfunc��H�t.extern�?six"�.six.move�http_client, urllib9pkg_resourc/���_entry_pointsi�.��0 _h#(sG�\urrogateescape' ix.PY3 else '1ct'return s.P�'a2', Q�) class ~�l:z�# override thec� repository a>�a isn't}�# orted by Warehouse (and wAbe).-�DEFAULT_REPOSITORY = 'js://pypi.��"/'y C!'U6  2�Cuser5�[��&('�=', 'r',� "url of�[: %s]" %H.�)I�('show-response', None �� 'display full (�a text yserver'T�@-dir�R��I�1rec#to�6�]�wbooleanH�.�9�has_sphinx'�>�3elfq_dir is� _� ep (�osSbuildw�'s��w���BTrue�Csub_ )('C�&, �")]3���initialize �)�U��n-� =  self.ta!rget_dir = None def finalize_options(self): ��$�upload.'�&�0if 8�..�i�!isj�J��N�(�has_sphinx(l��"���Sbuild �" =Z����d_command('+�%')��F����'ta�1�. �6er_"� B�Jelse��T�5���os.path.join([��_base, 'docsI���`ensurexfname('<���.���0�if 'pypi.python.org' inrepository log.warn("U8_�  is deprecated. Use RTD instead."�announce('Using �` direc{�b %s' %��)create_zipfile , ��%)�@zip_�3 = ,�P.ZipF4����.�G, "w�t�� mkh�.� # just>Ecasec�for root,�s�s*�}os.walkN���?���!ifB�# =+{� and not�s:��>�tmpl = "no&�` found� pY'%s'"��A���raise DistutilsOLaError(`���7��� �j�z��v�0ful� 7@�=�B[�relative =)N[lenW].lstrip([�?sepO�tdest = (�c�/, �gp.write(� , M�g�lU8�gclose("ru�# Run subvs�b@cmd_��f�X4subRs%�4run!�(B���h0tmp{a = teml@.mkd �(�v� dik bur.metadata.��&�5�� or�, "%s.zip" %y _�����('� shp.rmtree�'@staticmethod f��}__part(item, sep_b7arykey, values = +�D��H�@titl'\nContent-Disposition: form-data; name="%s"' % key �# handle multiple entries for the same@�4�if not isinstance(values, list):)��d��B = [ �]��a��A in �s;�-ifd�{, tupled��h�title += '; file�^�&[0|��2����" =�*[1!�Jelse�3�c_encod�)��#�yield sep_boundarp�@��@�b"\n\n"Z��� �"if�B and �[-1:] == b'\r'��b'\n' # write an extra newline (lurve Macs) r�@classmethod�def _build_Dart(cls, data&""�B0�1 upbMIME payloadwAPOSTB�e��7@�X �-�GHSKFJDLGDS7543FJKLFHRE75642756743254'V�N�\n--' + c�*�5end) =�/�6'--V��,�items = �M� , %",U�9er = functools.partial(%���Ccls.g� �B����= �'�b�?�`_group�Cmap(�.�*()1��+�Biter�chain.from_�Wable(W�;�@body#� �+�@�2�!s, t�7�content_type = 'Y`/form-Y;0=%sc1.dev'ascii'U�return b''.join(�8), r�� up_Pe(self,[with open((��x, 'rb') as fzg��f.read(�AmetaWlf.distribution.���� �E = {��@':ac/�': 'doc_�'%���0': S�P.get_�+()%��P': (oath.basR�3>�}�T# setauthentica�$�@cred� al]�gP.user�P + ':�password4 C��dard_b64!�6�if six.PY3 �;�S�� = "Basic " + 6�G�w�jD, ct(`�0�0msgV�Submitting documentB to %s" % .repository� self.announce(msg, log.INFO) �# build the Request�We can't use urllib2 since we need to senA�WBasic?��auth right withe�{first rk��schema, netloc,l�, params, query, fragments = \f����.parse.url �(self.repository)3�assert notc�A and�j��q�:�2if � == 'http':���pconn = �_client.HTTPConnection(��.elU�sV�SW� *se�qraise A�ionError("unsupported�3" + �(data = ''�:trya���.�Fect(�C.putq("POST" )�tent_type = cG�header('Con.�-.�B', c�=� W�n� 9�length', str(len(body))=� Authoriza0', 2��2endo�s �4n�Q�except socket.eK as Pannou��"e)ZERROR�freturnrT�onn.getresponse�if r.status:2000msgtServer A� (%s): %s' % (A�, r.reason� � ���J���:301�1loc@ = r�k3('L�'v�5if 2�kis NonW�v�"� s://pythonhosted.org/%s/�@metax�H_namC�H�' Upload successful. Visit*n���;�  r�ofailed2 T��VTshow_� print('-' * 75Td(), �@) imr4 os �%sy �itertool� mp from distutils.command.S_ext R��uas _du_� C�Pfile_N�;�Pcopy_� *�ccompiler*�Dnew_� -�sysconfig-�customize3�b, get_&�L_varC�s@�D� ,�%�Blog �setuptools.extension import Library from setuptools.extern &�$six try: # Attempt to use Cython for building A�nsions, if availableB�n�6�.Distutils.<�D_extw��Eas _�C� # Additionally, assert tha� e compiler module will load>�also. Ref #1229.�"__�C__('�CH�.Main') except I?RError�f = _du� # make sure _config_vars is initialized get�("LDSHARED")d+2sysH�+8� s .CONFIG_VARS def _customize__for_shlib(�)� if sys.platform == "darwin"!� �.dylib requires aflags on OSX; here wM��T orarily substitute the py�p.h variIBs so'M�'�'sP�am befo��� shared l2ies�O�0tmpTu.copy()q��/���# XXX Help! I don't have any idea whether|�se are right..y��J�_w�$['e'] = (��)���"gcc -Wl,-x -dynamic-undefined �_lookup"��@� m�"CCm�"Q�"z� 6�"SO0� *�zS�!fii �g.clear !�update(tmp�FelseP�� _rtld = False use_stubs�libtype = '8?' 5G� True elif os.name != 'nt'� Q5 dl#J��hasattr(dl, 'RTLD_NOW'�=@pass�_dl = lambda s: sa��G3 ''R�abi3_suffix(<"""ReturnV file%0an 7�-tliant Exte.B()""2�NX�, _, _ in (s@��6�.�$�@es()�@s[2]�imp.C_EXTENSION���Pif '.�'R�>�:EUnix`�*�r�#����i�a'.pyd'A�uWindows*�D�r classt�('��run(self��H�@"""B[J directory,r n � --inplaceT old_inplace, self.inp�) =�S, 0 ��_build_ext.run(6�)���D�Cold_R�#�7if �:��_�?�@copy_�ensions_to_source() .�Odef %��D�)W��$py�get_finalized_command(''�'�for ext in 3ext�^���fullnameb�Dext_�(+�!�[�7�0ile� 7��(@� 7�modpath = �.split('.��a�`packag�'.'.join(=�Z[:-1]W�-�t_dir = ..�( � <�0desT�0os.�s�2��Y�,���C�1bas%#(f){�Dsrc_�4 = 7��� .�Tlib, (�F�# AlwaysS, even if s0 iser than �ination, to ensure�#*�t the rightC7 R�� current Python/platform aL�Yused.`���(��� ,�, verbose= �rdry_run&� � h�  if�._needs_stub��WQwrite!�C�0 orpcurdir,K�c, True��M�p,�P@� �%ifU�J_map����Dmap[]N���use_abi3 = �iix.PY31��5�and getattr8, 'py_limited_api3�l�_suffix( �4if � ��M� so{ =�_config_var('EXT_SUFFIX��| �r[:-len(P�)�i�(��! +v��4�if isinstancewLibrary�]���!fnR(6extM SreturPshlib"rpiler.lj�S(a�zlibtypea#elc� s �Q_link~dynamic~\d, fn�� d, 'dl-' + fn��w def ini tialize_options(self): �_build_ext.ini-�,��;�.shlib_compiler = None#��js = []�ext_map = {} �def fin�+�J����`extens�< = �-or�Pcheck6�Q_list'.K�)d��ext for �,inp�6���� if isinstance(ext, Library)3"ifO�m��H��asetup_�(�� L��_full_name50get�����. �a��\��:� ='.S�l� �"[3�]4�-����# distutils 3.1 will also askpmodule u�se�# XXX what to do with conflicts?-���.split('.')[-1]�4ltdGRs andlinks_to_dynamicW) or FalsH��na�K��=�use_stubK�?notA � t�n = ltd(�Qneedsf�J = n9@fileO ._��0)�(0��Plibdi7os.path.dirX�(�Bjoin~Plib, n��&�)M� if�]X�nglQZ_dirs���"�.append(H�g� `os.cur�x�runtime_^��*��[�)�)���6new- ;�=9��, dry_run� �,g"ce�Fforc<p_custom~N�B_for(���qinclude@ is ^�g GA�X.set_3�?��c�odefine]�2# '#�"' :�+� a P of (,value) tuple/#or$� %�V� ����!�b_macrog�C�� un � for macro in self.undef: �compiler �ine_macro(�)/�"ifF�libraries is not NoneV�R�Eset_0�(��Z�_y_dir]�3�`��c�_rpath�sruntime�R�d�F�]�link_object�3�\�E�%) ~# hack so distutils' build_extension()�Bs a gy insteadH�h�cshared�> = �.__get__(9��@def �export_symbols�f, ext)Pif is�ance(ext, LDy%��`return>�.W��"�_�.� ?��1�*� �ext._convert_pyx_sources_to_lang(_" =��6try���-���.T�d�Ushlibz�j��0�� 2�!ifh_needs_stub��V�4cmd|��gfinalized�bmand('m�Rpy'). �9libg��G��Qwriteh�B(cmd{*�Z�l17��v��dynamicB"""RYtrue if 'ext'ss to a ?��5�-the same package"""�# XXX this should checkH�pensure >�0libeactually beingtJ�$as~�Q, andQpjust us3�Pa locC�-found ver[ or aJ�sstatic-2+�&�libnames = dict.fromkeys([lib._full_!�D for x&s]pkg = '.'.join?�.split('.')[:-1] + [''>�@any(I�+l�x�$in �s���;iesboutput{Qg�� -�" +�$s_!�e���m�# assemblQbase ��L@eachm{a that w0 a u� ns_>��(��F0os.s��r0, *!e.split('.')7) � for ext in self.extensions'� if&�._needs_stub�P� # pair each base with the<�V�6��*�s = itertools.product(ns_ext_A�"s,�__get_output�L�6s()|�return list(;�P + fn�����,�!in�1s) �Odef _��!):'��2yield '.py'��c�"if���finalized_command('build_py').optimizee� i�&o'�Qwrite{(�#, @dir,a�, compile=False�log.info("D�@ing  loader !%s to %s"J�._full_name,����w�~�P�_file = (os.path.join(.�g, *ext\�.split('.')) +i��n�nh�$if�T and j�uexists(���E�raise DistutilsError-� + " already J�P! Pledelete."�2notzdry_runf = opena�V, 'w'B��� f.-e(�B'\n'9[��9�"�bootstrap__():"� " global __2�1, _ __ �/__E�$import sys, os, pkg_resources, imp" + if_dl(", dl")�|�* =H�.R���|"!(_o__,%r)$�%��L�({1ile=��+de/ Tf '__B'Eqs �h�<�e�T old_flag4sys.getdlh�/()s �<�0dir9�_cwd()r��5?tryT  ^Uchdir1dirf)_�� P*.s�dl.RTLD_NOW�  u.=_dynamic��l�� �Pw� 3os.'old_dir"" # termT= \n ]f� f.close(3) �if compile:����from distutils.� import byte_5� 5�� ([stub_file], optimize=0,2��k�� force=True, dry_run=self. ���3�S�1 = %�get_finalized�mand('install_lib').5� �%if�J > 0 �k��Y���J����s.path.exists(T) and not�"�os.unlink;� if use_O�s or os.name == 'nt'H� # Build shared libraries=#�@def ^�_$�_object(������", �s, output�r��dir=None,h�� L��by_dirs� runtimeQ�9rar� exs_symbol0� O�debug=0, extra_prearg)��7ost�bR_temp� O��)�qet_lang�)H.*�.SHARED_LIBRARY+ l�G7dir2 �,  #!,  �  B�', �S) els^RVtatic everywhere .�=�libtype = 's0�'nt# XXX we need to eitherallow these attrs on L!y 3Fnces#%pwarn/abpif set,�something...�# �H� :�H�D�P��dassertpdir is 0 #0 @�ext doesn't pass thi�K��� =bcsplit(%�0lib�@base�s 6�Dext(R�3�4lf."�`("x").tswith('lib'):  �,# strip 'lib' prefix; this is kludgy if some platform uses C���# a differentG� !�basename = �U[3:] %�self.create_static_lib( ��f�objects,C�, output_dir, debug, target_lang>�) from distutils.errors import D�pOptionE� 3�setuptoo4�xtern.six.move>�>map-�command.setopti�edit_config, om�_", � _file def shquote(arg):�@"""Q� an argummfor later parsing by shlex.split()"""?��*�c in '"', "'", "\\�"#"a��e1if %�6arg���return repr�T� if�j� != [arg]:�6��arg class alias(�Define a shortcut that invokes one or more vs��adescrii^ = "dK�oI�H�E�V��dsumes_}s = TrueRuser_���[<��:@('re2Q', 'r�� (unset) the�1'),5�8] +.Z�l�wbooleano�y�N.�4+ [�s�ainitializeG�(y��T�.���-��<�@.arg�JNone�1 = ����?fin�,�K�����Ej�qand len��)1�4�_raise z�,�"Must specify exactly6% ( r) when ~�C��!"u"--� !�)�"ru�(edp�@ribu.cdict('-�'S���qif not =�� print("C AEes")e�C�%�-� %��m��q �*esl�K�e2.py0", f1at_8�(�,�:es)�K3�R�Lelif;== S�= � K��x���_��L�q��� ��Nelse�print("No alias definition found for %r" % alias) �ereturn�Uelse:��,�8�� = self.args[0]!�command = ' '.join(map(shquote,9�e1:])) =�edit_config(^�filename, {'w�aes': { �#: h�#}}S�dry_run) def�Amat_-�(F� �2es)�tsource,H�" =0es[.��2if '�B == �_�('global'L��)�B '--�-2�! '�/elN�OuserL���J�?loc�������c=%r' %���0 + &� +$ +@ import os �imp from itertools $�product, starmap2�distutils..install_lib as orig class �(�-�"""Don't add��piled flags to �s of non-Pyth,riles"""�N1runX��fbuild(G0outU�s!�"�5if %�is not None# always� , in case we have any extensAstub�deal with����Nbyte_com(���get_excluR�s���K���R$ a collec_`s.Sized�Container^Apath�%be�n�dor single_ver�_�rnally_managedap�F���+ppackage(%���9pkg�� `ns_pkg^$_SVEM_NSPs�@��0� -�n�(J� Z�9���P_spec�(=�F_gen_3&()S�3et(9.4� de�6�&, s�b� )�@�R, pkg3�C�aGiven a e ��q�>� �tin that,�,}�ute the full�=�.)�z�Apart@kg.split('.') + [{���w/0os.�q_dir, *Y�@staticmethod�7P(pkg_">>> list(f�Ylib._B�'foo.bar.baz'[�$, �' �'�Pwhile�: yield pkg_name ��, sep, child =,�.rpartition('.') =� def _get_SVEM_NSPs(self):��^�5""" �@Get x�space packages (list) but only for3�single_version_externally_managed installa�s and empty otherwise.M��4# TODO: is it necessary to short-circuit here? i.e. what's the costX�P# if finalized_comm�is called even when_'isM�eFalse?�pif not X.distribu�.KH�w�{return []��-0_cmS��#('*�%')�dsvem =p�C�.z��s�� �Nm�Eelse�@staticmethod�}�1clu opaths(nerate fil0thsbe excluded{vbytecod2BcachI�/s)adalways]�7 module it��'__init__.py'A�/c':�o;�Bhasattr(imp, 'Gtag'-��w�base = os.\.join('__pyV__', �' + imp.\�&()>�N�m+ '.py��o��_opt-1>� �"�2"��&copy_tree(������}@, inQ, out � #�preserve_mode=1, �Ytimes�symlinks=0, level=1L�bfassertE��V� W����\�Q���" =�r��#s(�)��/de"Sorig.V_lib.0#^�2# E<7 *tas from foutputg�setuptools.archive_utilS`ort un?_directory =��U�.�s/�6log`�5s =Q��pf(src, dst�� if�4 in >�#�log.warn("Skipping! of %s (T5)",��H� ��� � ��8���`info("�� %s -> %s", src, os.path.dirname(dst)) ��outfiles.append"� !�return dst �unpack_directory(inE�#, N�F, pfg�B��sG�def get_outputs(self):b�� = orig.install_lib.6�5�exclude = N�)��fsions(�1if �&deq���[f for f in��� if f not�<�]x�8�� from distutils import log, dir_� �2os /�setuptoo0�Command��lspaces"�.archivei�~���pkg_resourH� class megg_info(l�".ICer, �3"""� an .egg-<���$T@the ;dage""" scription = F�D�auser_oD�Us = [#('�-dir=', 'd', "4 to�a to"),:�]V��initialize`� lf�_dir = NoneC�?finA�set_undefinedk���'���������'hei_cmd+�2d_c{$(""<@base9 = >.Distribu(F��,", w��_F� �0ver<�)'�`() + '�U'#�|( =]��| &�`targetQs.path.join^Tdir, ��e��]"ruC���.�5runF'F'S�Cif o�Risdir��Q) andl#�Ilink$� W.remove_tree/�, dry_run=� ��'el�Cexis.� n�D�execute(os.un�), r�P), "R�ring " +P�iUR�� l� d`ensureTr��N��k�@copy!0, (�@Copy� %s S%s" %�X,� o�f�&() �<�d8���d # � N ���site-packages def skimmer(src, dst): �4# filter out source-control directories; note that 'src' is always N�' # a '/'-separated path, regardless of platform. 'dstM� �$�-specificJ�.&�0for�p in '.svn/', 'CVS/'��� if src.startswith(skip) or�% +J�>src>��B�return None�self.outputs.append(j %�log.debug("Copying %s to %s",� 4�q�Edst ��unpack_archive(|�!, �ptarget,��) from distutils.� import convert_ (�#�;log�t.errors!�DZ�E�%, �aOption� p�$os �Dglob �2io c�setuptools.externd�3six#�bpkg_re� �@ribup� , PathMetadata, normalize�h�command.easy_installv�� �$�namespace�]� __metaclass__ = type � develop(C�".D�I�Her, �"""Set up @age N�rment"""0adescriD = "�7��67�c mode';�auser_o;�9s =�.�5+ [C("une�P", "u�U�S thisc�7"),=�@egg-1=",e!, �1the�-pbe used��.3�@linkeN�]�boolean� �E+ ['�'D�_consumes_argud�False # override base}��{1run�C��.i� jmulti_version = Trup�B�_�%()H�g�H�"�b(�Oelse~��W_for_9�]�warn_deprece&()�Riniti{I J��! =��1egg �.j� K�M�j�a_copy_3P= '.'� �c eggs $fcurdir�?fin� Bei =Dget_.�#d_k ("�Vinfo"if ei.broken_ � template = "Please rename %r to� before using 'develop'" �args = ei.egg_info, �tbroken_� 3�raise DistutilsError(template % S�)2�Pself.�C = [g���%] #�easy_install.finalize_options(A� O�expand_basedirs(� �# pick up setup-dir �� files only: no�- ��� .package_index.scan(glob.�0('*J�7'))�gg_link_fn`��@ + '.�-�'e��p��� = os.path.join."d_dir, *�<_fn�!ggv��(h�1if ��A��a� is None:"�� #��0abs5�(�Z��target = norm.�N�0��a���� 1�� ��I�� ���)/!ifG��B != �  O �q"--egg-O�must be a relative �from the  ��" directory3" +� p�uP# Makj�distribu7A forh�'s sourceF��3�! =:�("���,�PathMetadata(!� !�H*))@�project_ =I� �e���_@=_resolve_� �8��`�r ��Lx�����9��o�9��@staticmethod8�Odef ��C�|�k�p)g&""PGenerFa/K�P back'.' where��tcript resides and ensu,�"atV�`pointsJ�(th�@��� $$ /$���.p����2_to�y.replace(os.sep, '/').r p( �N�!if�E�!ufcurdir-�� m�'../' * (�a.counte�F + 1;d��f�  {�k�,�b� � if�db 2os.��{�u"Can't get a consistent path to setup script from" � " installation directory", resolved, normalize_Z�(os.curdir))P�areturnz�A_to_z� �4defd�_for_development(self):'���if six.PY3 and getattr&�.distribu�, 'use_2to3', FalseF��J�# If we run '�� � can not do this inplace:��6���# Ensure metadata is up-to-date��,���.reiniti command('build_py',h�&=0.=�>un_4� )�bpy_cmd = p�qget_finp�d=�"q�"=���=Y�.;�Llib) B>� extensions�egg_info', �Rbase=f��A ��r�3�>� �*�o?extp�5� i�p# Fixup�Q-linkSeasy--I.pth /ei� ����6 = ) c�'��B.loc,�_# XXX>�_provider = PathM(x�", �.��Felse�# WithoutiV works fin/��,# A in-� �1�����5�'��_site_py() # e/that targetF�6�'�F-saf5��tools.bootstrap_Y�� ^x��{$�([A� �?tup/� v = Nones��namespaces(# create an %&din thedir, pointing0ourX@log.c0("CS��&�A%s (wto %s)",�����Y�!if�zdry_runMwith openSQ�"w") as f0�� vf.write2�+ "\n" +��# postprocess0ed pro, fix�0up Q���%s,(#Phandl �requirements  self.process_distribution(None, ���R, not�no_deps) B�def uninstall_link(U�!):��"�if os.path.exists!�A.egg/�*��.�log.info("Removing %s (Y� to %s)"�A��Ubase)y��O�%�_file = open� 0�contents = [line.rp() for �I in V�]A� �z.close(�5if f��UPin ([4�()],S��� � 1�asetup_B� V�?��Zwarn("Link poi�T: aborted",� ��K�ireturn�&if"vdry_run�4���Pos.unF�(update_pthH��`) # r3e any .pthk6%us�"if�4�.scripts�# XXX should also check RentryC =�!c���mNote: you mustior replaceC� manually!"^\�Zl�� , �!if�7 is<ist�I�[ a dependency, so fall bac7�normal behavior�c easy_�.�_�1�# create wrapperTin thR dir,e��!to�N�new-style...�+�i�_A;C�...and oldJ�G��6�P_nameZ��B� Aj or []p<��� 0abs�(convert(+��g�)u�E���-�9��R� 8�with io.k�) as strm��k�atext =$�[.read]3�(,, ��M� ��`�=E� �b� �c� = VersionlessRequirement�� m� classe�11"""�Adapt a pkg_resources.DI�ssimply ��qprojectD�����&'r�'CthatSs will work acrosmultiple v"s.1>>>06 = �on(project_n,ame='foo', version='1.0') >>> str(dist.as_requirement()#��=� ==3�2�adapted_6�B = VX�WlessR@���C�f�8�n�'i�A""" �def __init__(self, [�:�����$._���:�ugetattr=�Vname)=�sreturn &�a�L�!, +�L� !�w�I���.project_A� import os from glob �� ����`utils.� �convert_path(�tcommand+�sB� %� setuptools.extern.six.moves/��filter class >�_add_defaults"��cMix-in providing forward-compatibility� functiona�`as fou�n����s on Python 3.7.fDo not edit the code in this �except to updatep�d�a�l ed@�v�. Instead, overri`�Qe subb�.D��� ��""""Add all�?` files���BlistU�Q - README or �A.txtt�!�9.py�Ptest/�*���DpureX@modu��2ion T�j scripm��>���s pointed by package_data (build_py�9�Cdefig��1�_O�P-�#as�s*�C sources >ed as paM f nsBC libraries. �I� (doesn't catch C headers!�Warns if ()r�S� .py are missing; everything�else is op��e! ( _standards(�'��X�&� pl$� (� ?ext!� _c_lib� �%�*@staticmethod��z1_cs_exists(fs  -��G�Case-sensitive *� 8�ence checkg�-�� t.q�_&__ETrues�F�d.upper[��FFalsO�!if 0os.�.���E�L� # make absolute so we always have a directory �abspath = os. �.�!(f�)*�<�, filename6�csplit(<�5�freturn1� inh�listdir(S�!) g�def _add_defaults_standards(self):'����@ = [�.READMES, �distribution.script_�]B�for fn in L�_��c�pif isin�ce(fn, tuple��&���alts = fn]�����got_it = False���C� ��?���"if�@_cs__exists(fn���1���x�>Truw��"���*��p.appendX� ��-���Rbreak���rif not u��k�`warn("Q�9�found: shouldone of " +�~�', '.join(C){��Nelse�R�(p���C��F'%s'o" % fn op,al�� `'test/�@*.pysetup.cfg'apatterA� -��dilter(" is�s, glob(E� y��&�Z1extZOiles�lpython� # build_py is used to get�R# - >� modules4���s definedpackage_data+�h�=pget_finalized_command(''�'��#�Dting�r�Z�p has_pure_�(B}�.�qsource_l�/()��or(computZ��T�5 by}. _*sh�pkg, src_dir,5� ����wswd���H�K�2��1� �s'��+� �F�#f�1get 1�,� ��@item��d�� item, str):  ��# plain file �� item = convert_path(�).�Pf os.%�0.isT�,�:-��o�Pself.)�list.append4� 3�OelseI�# a (dirname,�� �os) tup�.�! =� w���cfor f '\��,� .f+�,�i//f)Z��2�01f) �def _add_defaults_ext(3�V�0if �.distribution.ha,�_modules(0��v�PbuildM�" ==�get_finalized_command('(�'�q�0ext-�.N�psource_%�?s()�oc_libs�/�Orari�Oclib��)���.��oscript�0���,��1�� if hasattr(sa.�:, 'standards'�# disable the funcality already avail$�upstreamaclass h� e�Hpass frome�tutils import log ����..install_�u as ori1�$os;�Bsys a�bpkg_ree�Dj, PathMetadata, ensure_directory � }�(z� �="""Do normal � ?�, plus any egg_info wrgr*�Fs""">Qiniti0_op �.7��Ano_ep = Falset�=runsetuptoolsSeasy_��"eiI�e�5run"�"5s3�O���` # ru9rst to set up1out�(�U = []-��0 �t# don't entry point into .egg file! return � ei_cmd = self.get_finalized_command("egg_info")8�dist = Distribution(��\�Y�.;�base, PathMetadata(���j�/),M�gname, /�vversion1��/bs��'build_scripts'=�exec_param = getattr(R�0, '�utable', None9�/bwv� "bA_wininstX$is�v�R�, '_is_running', Falsx�writer = ei.S�W�J6if _�:��"python.exe"&�b�Windowsi�� >P= sysN�c2 {�# In case the path to �P� K�9� contains a space, wrap� # it so it's not split up.'��U��& [�]&�# resolv���environment0�"�"= �f.best(f�Z_spec_class/�R.from�(�F�for args inh����(R, cmd.as_header())m� (*<�)2defV���/�", _z� ents, mode="t", *ignoredm�1"""~8 anDfileW�s directory""o� setuptools.2`.easy_4all import chmod, current_umask��@log.S�("Installing %s���;%s"���.f�F_dirPtarge0os.l.join(0� O�=�'�0outs.append(R�����* =�I"if�0dry `ensure�Wb��]��f = open�q, "w" +��-�!f./( �Wclose��4�Z�0o777 - �_) """b Create a [0's J-0A and��= 6�9�`utils.hl)PFileL�Das _ � 5�derrors\�M�InternalE� 4��"�2�convert_ (�#�Clog ��x����$os �$re �%sy�$io�warnings import time import collections from setuptools.extern +�?six"�.six.moves,�=mapO��}CommandL�c�d.sdist-� �+�walk_revctrl2�Eetop^�edit_config2��b�3_eg)�pkg_resourc�( parse_requirements, safe_name,�version,2��� yield_lines, EntryPoint, iter_e� _p�s, to_fileZ�)unicode_utils as � �Dglob�� �  packaging def translate_pat;(F�!):�1"""�T%�0 a �` path )� like '*.txt' in to a regular expres5.H�his differs fnmatch.� which allows wildcardsX�*�H�directory separators. It also kn;�about '**/'T�@�es any number ofP�2ies��pat = '' '�0# T��will split on '`� ithin [character classes].3���eliberatec�chunks =G.O�@(os.ZR.sep)s��sep = re.escape"���`valid_t���[^%s]' % (sep,?�qfor c, l��Aenum�(�s�N�Qlast_� = c == len'�B - 1��+�2# C�that are a lQal **��0staQThey |�z�)g�K�#if� =='x����6if � ���0# M=W�P if tais the<� component�7���y+= '.*'�Oelsem� '(+/)5��U�Q�(?:%s+%s)*,)m�continue # Break heQ�Rwholen� has been handled@Find special s��remainder�Ui = 0�W_len �while i <�)� -�r��C�#5[i]X��" ar^+'*� � q� R��6�xhK + '(el|�?|� p�o� "� i�[i�C( @���inner_i = i + 1  � # Skip initial !/] chars $� � if inner_i < chunk_len and�[�] == '!':B��G�%�% =M�=+ 1*�l�]l� m�# Loop till the closing ] is found3�Uwhile� O!= '�,">=o�}c# Got to�aend of �0str�without find�a� ��`# Do nR�reat this as a matchB�group, but�literal [P�pat += re.escape(o)+�Oelse�1rab�tinsides�[brackets]O���| @q[i + 1:�/_i1���_class = '' V�1# C"�negation%�/[0 �� v�/^'Q��)��JO[1:]�P� x?�y�Z�'[%s]' %  /,)f�HwTi�)_i��- iN1�# Join each* /dir separator~�!ifQlast_ w�2sepd��Br'\Z`returncompile(pat, flags=re.MULTILINE|re.DOTALL) Xegg_info(Command)}�pdescripPP = "c{`e a di bu�'s .egg-?� directory"�auser_oA�� ('4�base=', 'e', "=� contain\�Eies"6�' ��" (default: top�source tree)"),B�('tag-dat� 'd�@Add � stamp (e.g. 20050528)version numberO�Qbuild�bQ�Specify explicit tagG�0add�N� %no�DK�Don't include�[�]�xboolean�4 ve$�E = {'~�&: 4�;} de!izA�ions(selfD����_name = None  � self.egg_version = None �% �Obase�Oinfo�tag_build�0datX�0r�pbroken_�\�KFals�TvtagsY�@�#�)� allow the '�svn_revi' to be detected and6�set, supporting sdists �t on older Setuptools.8�@property�Ldef s�(h!): ��{Qpass �@+�q.setter�K�|, valueR��[�##{��^�Dsave_�, filenamb�1"""��e�Materialized�A of @into�/��@d. InstallSd keys in arministic ord�n�to avoid arbitrary re#��on subsequentX��<��ocollections.Om�edDict()�E# foDm���1se �would have been addeE�u�# when PYTHONHASHSEED=�[B'] =�� ,��`+�M�dit_config(0, d�<�= �&))1fin1_opR�;���@afe_ �)�.@ribu<�B.get�)A@� � �����dtagged(��XFpars�1 = �*�>�Q�:�6try~�K�$is7�` = isiAnce(R�}�, packaging.�".VJ��O�spec = (?����"%s==%s" if t�Qelse ��� 6� Y�NlistV��_requirements(�"% ��,S�����m�except VXZError0`raise putils.e#�as.Dist�OE9��"Invalid@�5 �C or � syntax: %s-1%��� 2�&if!is �0diroF���.Be_di����*��\T�1= (B�`or {})('', os.curdir�9�AnsurU�� $('I�'(�!ggd = to_ ) + '.egg-info'  �if self.egg_base != os.curdir: $��(�Qinfo '�path.join(��E�,T��,�)G�if '-' in!�Onameh��check_broken_��I�5() K�)# Set package version for the benefit of dumber commandsA�(e.g. sdist, b�`_winin�Fetc.�#6���+�ribution.metadata.�=��� If we bootstrapped around�@lack�a PKG-INFO, as might be$��0# cin a fresh 5out, make sur2�at any special tags get addedN� to_�K�q� �3pd � _patched_�-�if pd is not None and pd.key =H���.lower()Cpd._Gy��1��j���+�gparsed2���@��A� �! =� def write_or_delete_filec�, what, ��� , ",ce=False�@"""WJ� `&�d` to `:�R` or _� if empty���$If4�d!n- �, this routine�@sameL"``��b�U()``.D N�J�A but ``#``[�!is+S�ucallingI�"``��i��Y)`. d�V�"en�is a no-opO�hunlesspexists,IRwhich a warning�@issu\@bout�N�orphaned (if `force`6�f,ud"�Vtrue)45"""Z�!if Tr@elifY�(@ Y�n����Z�g� +��+@log.(����""%0setUsetup(),�2%s �" K��Y�ireturn)�Nelse�(7p�fY��1 a dry run) after announcIt~���`&@used'a log messto identify� beF��&tej��J�� (";��C� %s-%ss�jix.PY3^�U! =.encode("utfc-8") �if not self.dry_run:��$�f = open(filename, 'wb'B�%�.write(data�close() V�def delete_P�(x� , ��[�){�A"""D(�$ `�3` (�a dry run) after announcing it"""l���log.info("v��!�7%s"r�*�[��� os.unlink �tagged_version���# =h�istribution.get7�;`# egg_� may be called more than once for a dQ�,�# in which cas6�$e ���ng already contains all tags.F�"if�v�D andD�.endswith�. ���~return safe���%�' +|�n-rucDmkpa�@i�@instEr�fetch_build_egg��b epKiter_entry_points('e�;rs'ep.require(~�= ���-B��5�@solv6���"�oP, ep.3P, os.�B.joi.�%�)<�I�,# Get rid of native_libs.txt if it was put there by older bg  nl�"a� y�exists(nl>.'nl��find_sourcesd�)S�zU = ''2tag�.4�+'�A�Odate@�time.strf �("-%Y%m%d s�0 ����"""Generate SOURCESmanifest[��A V��Umm = L�Qmakero.$4mm.-�8�M0mm.9���.'�@list;�m�!check_broken8�*4bei� �0+ '--h�'�b9 !=ejcurdirU� �;�V, bei� ifI��� S��Uwarn(���"-" * 78 + '\n�����"Note: Your current �o directory has a '-' in its name;" �.'\nthis will not work correctly with "setup.py develop".\n\n'N�Please reo�c %s to�S� n�problem.\n' +�]* 78,P�bei, self.egg_info#�)�(�tbroken_/�/ =?�1�*�bei # make i  for now class FileList(_ �!):�'# Implementations of the various MANIFEST.in commands ;� def process_template_line(� , �f��q# Parse]���p: split�2up,�2sur!�right number�Qwordsv�K� isH�re, and return� relevands. 'ac�' is alwayG�defined: it'R�R firs=��w�� ��. Which�Wother�three are R� depends o��;h�ll be eiC�patterns, (dir��Q), or�_�%).}�([�#, �as, dir�.�O _p ��)\0OK,< we know that\j��IQvalid�awe hav�/#  �q� Y�U�-- so weE�2can`"edminimal error-checking 3if N�== 'include'�����.debug_print("(� " '.join(M)���� �sc��g�!ifn�a�T��*��log.warn("�ing: no files found matching '%s'"*el/ex(�Ga� @prev3ly-KdN�"9):dglobalp�D /�HGh�_O#S Oanywheredistribu]"T T self.de$bug_print("global-exclude " + ' '.join(patterns)) �Cfor �4 in �)s:%��0�if not self.h�_h�[�)5��9�log.warn(("�ing: no previously-in�d files matching "��P��"'%s' found anywhere��distribution"),F� �%) '�pelif ac>� == 'recursive�'�'de 2� %s %s" %e�� �_(dir,0�_om�� ��yunder directory 6�,8�2�z�(e<I_graft&�Ddir_ V �U��@+� 3iesb "V �� V_prune�&��/��/("� ")pW*se~raise DistutilsInalError(9"this can�happen: invalidN# %�+def _remove_(,gdicate&""�R3�C allfrom the� list that�2preS�.�Return True X"ny0��� w�d7��iq= False"� for i in range(len(self.files) - 1, -�G): �if predicate3�;[i])��4�S� debug_print(" removing " + �s��@� h��?�:del#� "�found = True�qreturn � �def includ�, pattern�B"""I#� � that match '/�Q'."""R���a� = [f for c�c glob(.� ) if not os.path.isdir(f)]C�qextend(O�)��Dbool����/ex�E#���= translate_��}�����_!e_2(E�.�)yrecursive_?dirk�3all�anywhere in 'dir/'4the.E� 4ull�% =Qjoin(�F'**'�D�fQ�%, �=�7�Ey�_� �)1anyd c, Jn0cQgraftZ, dir�ECfrom>�Iitem���@_dir�x� '��<��"�distutilsalist.findall5�J�� .Dprun��"""Filter out/s �)�[lobal! � pcurrentkectory+i�. This is very inefficiC�on large2o treesa"if1all�N�FNone�S<6q ?�j��f match.match(f)]# �self.extend(found)�return bool��def global_exclude(F�, pattern):'��a�5""" �E,� all files anywhere that match theH�.;�G�'�= translate_w�(os.path.join('**'� ���._remove_�(Y�.�!) {���0app�0�g, item�!if�&.endswith('\r'): # Fix older sdists built on Windowsa��#���X�! =M�U[:-1]��� = convert� h(-��<� f �Q._saf  h(6���&�#��.�%���(�7'hsB���.>�(�afilterz�:���@b_repai*�R�rReplace�f� N` only ��"hs���Because some owners of FileLisJ@nipuOunderlyingX!``h�%`` attribute directly, this method must be called toD��Q thos/hs= = list(=*�)B��!�dKenc_warn = "'%s' not %s encodable -- skipping"F# To avoid accidentalW-codings errors, first to unicodeu�$ =�b_utils,Pys_de.�4�3if 7�vis None0�@log.�(�in unexpected�9ing�! %"�G�XFalse�Mensure utf-8T�uability�Outf8�Atry_\"e(�1, "I�"���A�� 1, 'L�'L��:try;# ept is either way checks out��U�4if 3 ex�M) or��y�D���j6Tru#Eawill c2anyjeV �G�0exc�UkE eE �( Bqsys.getQystem@ing(W class manifest_mak��Atemp== "MANIFEST.in;�initialize_options @���.use_defaults = 1��^prune�� 6�dforce_%�?�W���?fin� pass d�ef run(self): ���.filelist = FileList()#�if not os.path.existsH�.manifestQ��X�U�dwrite_"�() # it must D� so it'll get in the �z�H�add_defaults��template�Tread_!�K�g�`prune_ _� �����H.sor<��remove_duplicate�*�  �Edef *_normalized , v��� = unicode_utils`sys_de�($�areturnH�.replace(os.sep, '/')� ���z�1"""��W���'3���-A' to$� -�D�named by 6�%�%'."�r� Z�._repair(���c# Now � s should encodability, but>i���Qs = [f�f) for f�%��3����%s]K�pmsg = "KDing �� '%s'" % B��;��execute(A�!, n,L�ss), msg�C2war�_�__suppress_6�@ing(L�3��Q`sdist. ��V�-@staticmethod���\� � missing-W t�ings from �e���>�re.match(r"standard#0 .*hfound"��� X�r�."���0�aappend%.`,�,� rc���Y��(walk_revctrl()'�3if *� 6elf�0ext�*�>�Oelif=�ei_cmd =qget_find_command('egg_info'� bgraft(L�..� �>�Obuil� $��base_dir��ribution.�0ull��w�`�(X�.�_T��.�v�&�p = re.escap � )clude_pattern(r'(^|' + sep + r')(RCS|CVS|\.svn)' + sep,  �is_regex=1) def write_file(�name, contents): W�"""Create a %� with the specified 9�B andQ�$ 'C�A' (aE�sequence of stringsH� out line terminators) to it.9�1"""�R� = "\n".join(�!) $�# assuming�� has been vetted for utf-8 encoding?�0�=.!�1e("/�"h�Gopen5"wb") as f: # alwaysPOSIX-style manifestr��_!f.�pkg_info(cmd, basek,� �Alog.'�"M��7%s"&�n�if not cmd.dry_run��metadata = �itbution.�E�-�.version, oldver=�Eegg_�=�,�E���B�� �C���%, @�����6try���#lunescaped ��to PKG-INFO, so�0er Vresources�G�can still parse i�!���i e_J�y�V��� �)S�kfinall�C����4 =��X�safe = getattr'.dp, 'zip_&�s', None��b*�B_eggq&�qty_flagI�� , @�"arn_depends_obsolete0�if os.path.exists(���Uwarn(-��"WARNING: 'u�.txt' is used by setuptools 0.6!\n%�B���A"Useinstall_requires/extra�H�() args -�Fead.L�_F�m(stream, req*�s = yield_�(�b or () apK _c-alambda�:�q + '\n'?�u = map(5�,'�sK��.�(����E � � �"ri��Mq= six.S2IO(��.� , E�.U5� =,� �Qor {}~��� in sorted(�Y�}�a('\n[{)�}]\n'.format(**vars()�2�?�h�[�]��fPor_deL"*,.getvaluef data = io2.StringIO() _write_requirements(data, cmd.distribution.setup_*�s?��%�B�or_delete_file(".�-.�X�0", �`name, d�.getvalue()) def L�toplevel_,�s(cmd, base�E�!):�pkgs = dict.fromkeys(���[ ���k.split('.', 1)[0]�for k in�Xiter_��[�J����a("top-� �s '\n'.join(sorted(�P)) + �Bover?arg (�d, True[�/�force=Falseu0arg� = os.pathYDext(^ = getattr� Y#, N�b, NoneC2if 8�ais not��m�=#=�6 n����,k�!, � oentrie Nep =5�<�y_points �if isinstance(ep, six.dng_types) or ep is��1Q = epI�Celif'�+�[�0�0sec`, cont�tep.items()�5���!if~�>����;���-� = EntryP .parse_group(��=��E���vmap(str�. ��)J�� .append('[%s]\n%s\n\n' % ��>��:�C = '��)c' ' get_pkg_info_revision(1"""Get a -r### off of PKG-INFO Ver3��case this@@an s1 ofD�ca subv-�i�.�g�warnings. �/("��[��deprecated.", D�BionWA�=%ifexists('�'��with io.open"�Z as fT�@line� ��J�match = re. �3(r":.*-r(\d+)\s*$", F���9��1if 9� v��return int(&�.1j� 0  z`utils.�p import|Pvert_3 (�#�;log�t.errors!�@DistT�0sOpE� `�v��os from setupto)ols.extern.six.moves import configparser from setuptool%�Command __all__ = [':�_file', 'edit_���option_bas�setopt'] defv�<�(kind="local"): """Get the _�qname of�distutils, 3�, global, or per-user`� M�`a�` must be onL�q�2, "@�"A�">�"7�"""�0if A�Q == 'r�'���return '2Q.cfg';�3�^�4�os.path.join(6��Q����0dir�(�!._1f__), '�w��=�)K�����dot = os.\��posix' and '.'G'��P���`expandS�(convert_�("~/%spy�" % dot)�raise ValueError�"5�u() typer3, 'H'�1'",�)X(:,tings, dry_run=FalsemcEdit a60uraz to include `setG�`X� is a dic8�0ary�0iesT``None`` vs, keyed by�ca1/seD� Z. A 7�` means�adeletesentire ;�,P�Zwhile�Ulists �D�be changed�R�d in thatP�.P�A9�����8�&8�Elog.debug("Readingm�yA%s",w��7copts =-�Q.RawCP(*�t.read([]�4for�", s�s.items(�&if(� s � ���pinfo("D��a [%s] G�� ��E�����0.re_+�(���%�Jelse�`if not�]s.has;� .��D���!Ad4new�?to ��N��=addy�-�"����xo,�u�st�2���$if-�z�"���� s����V%s.%s2�z%2�r����W�8�8�s9��b��� empty [%s] section from %s", � section, filename)4�opts.remove_7�(�5�_else:K�log.debug(���"Setting %s.%s to %r in� �B, op�Vvalue�n�����4set� T�!) L���info("Wri�"p�[�if not dry_runwith open(y, 'w') as f'��write(f) class�_base(Command)8�"""Abstract � 1�Rfor c)�s that mess �aconfigBs"""�Ruser_MQs = [���('global-7�g', 'g'lS"save� the site-wide distutils.cft�&")>� ('x�[�u[�current 9�_'s pyb� s=�f`��0uraD�use (default=setup�)�]1boolean43���\G�def initializeN�S(self���._�q = NoneK�"��f� �  =�>���?fin� 9�]7��u�>if �����:�.append(�_�["')?�0�S��Q��7�O��o��1 is�<X� �8� ���sF� �[local�ljs) > 1R�traise DGO^ErrorS"Must specify onl�"e � 4���� 1, =6�Zsrsetopt(c�@"""S-I-lin:aM�adescri� = "set anj�! or anothe�c�� o�Ifor'�:�o:��9� +�Aset-.�s.��@ of -;� 4�z�+�r� (unset) the value'), ] + option_base.user_�0s "�tboolean�) =0� �+ ['remove']@�def initializeG�q(self):b��f�s��.�-��<��.command = None�N��set_value���U���?fin�,�K���9if �!is�2 or���!�<�raise DistutilsOError("Must specify --*and* --W�-")�s� U2not��&Bset-nRor --N�&")<run edit_config(���8filename, {�!��1: {0��.replace('-', '_'):��}N�)},�J�udry_run�&) """Utilities for writing code that runs on Python 2^^3""" # Copyright (c) 2010-2015 Benjamin Peterson # # Permission is hereby granted, free of charge, to any pe@�p obtain� a copy # of this software�associated documenta ws (the "S2�0"),g�deal # in �� without restricF�, includ��Climid��?�0s #Y�Ause,�, modify, me�publish, di]�pbute, s�0cen6�Band/R��0cop�$e �,�@to pYt�@sonsz�Jwhom�i�furnished$�Qdo sov�@ject���`follow�Pcondi�!s:The above��b noticz��shall be: edh(al�r�@stancA poru��.�fHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THEM�0IESO�MERCHANTABILITY, # FITNX�0FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALLm� # AUTHOR� COPYRIGHT HOLDERS BE LIABLE m��NY CLAIM, DAMAG�R OTHER #)��@ WHE��t�AN ACTION�CONTRACT, TORT O=�WISE, ARIS@FROM��Y OF%�IN CONNEH��u��!OR�0USE.�� DEALINGS�UTHE #/�. from __future__ im  absolute_� import functools import iter�operator!�%sy,�types __author__ = "Benjamin Peterson <b�@python.org>" __version8�1.10.0" # Useful for very coarse ��0� differentiation. PY2 = sys.S�info[0] == 2 PY3�3�4 �:2] >= (3, 4) if PY3: string_�<�1tr,�uinteger�2int�Uclass��8��Atext�F�E�dbinary�0bytf�v�pMAXSIZE+��ys.maxsize else�Bbase�l� �(�a long)x� �(� �0s.C�BType*��qunicodeB� �Astr �!if platform.startswith("java")���1# J& always uses 32 bits.N��&� int((1 << 31) - 1��/� # It's possible to have @1of(4 !=�@Py_s�6_t)s� X(object):��^���def __len__(self�����sreturn ��6try��(�rlen(X()���except OverflowError3�# 32-bitU��7�$�%� (��O# 64L�'63p�:�del X add_doc(func, doc`"""Add�Qument� a *�1"""��� ._F�#4doc]�_module(name^�I�", ving the �a after�last dot.u�#__]�_X��E�B� s[u�B] _LazyDescr  S_init , :���6�..�! =�X8�&ge7�wobj, tp:�`resultelf._resolve(9asetatt�%, h���9�) # Invokes __sl� # This is a ugly, bu4 avoids runnk�'�qgain byB����u# remov%�d4Viptor{��(�4del�1.__e'__��Attribute�Epass�=bMovedMP , old, new=Non��gsuper(U��4)._ ��\�@��� ifZ��q�]� � �4new3���0mod�%ew�  self.mod = old def _resolve(self):���return _import_modul%�W.mod)A�_getattr__D� , �J�<�0 = c�.q�)l�value = I�(2�J�'�sh�f�!, ;�J���� class _LazyM�btypes. �hType):�Einit�0nam�� ��gsuper(L�,�C).__7�1��lf.__doc__�_�$__�}�$diC=�Lcs = ["K�`", "__k�E__"]n�(�@+= [ �. �A for1 in�._moved_"�fibutes@�9��s�Q# Sub�es should override this|� S���]{Mq�AAttrp�>_Descrx ,�R, new �"ol�R=None����2 y� fif PY3�$ifz�@ is s� ��$��0 = p����0mod�� �^���_�!if%� �m���&���� �Nelse���:�_ ��[�!ew;!�W�/���O�5mod-��n���9�r�9ameA�`��(� / =����9�=.w�)_SixMetaPathI#er(object1"""�A meta path NSer to �P six.s and its subz�"s.�QThis �5�lements a PEP302 finder?�loader. Itbe compatiblM�with Python 2.58� all existing versions of(�3��� �m�,��1ule2elf=&�M��x�D�c.knownE��"{}�n�3add�mod, *full|sq���� �st�[��O� + "." + <�@] = ��)ge,+��OW� �j� �� ��,N %if���w�_modules:  �return self ��QNone �def __get_module(/�, fullname):&��?�6try ���L��1�c.knownC�$s[>�]=��except KeyErrorI�aise Import�("This loader does not e� �F " +���3���# in case of a reG���2ys.��EpassS�Qmod =.}9)*� if isinstance(mod, MovedM��W�mod._resolve(J�Jelsex)�_�Cer__�z�s� =$�6modis_packagL5"""D�Rtrue, if the {dj�ule is a S�.h���We need t+method to get correct spec objects withu�Python 3.4 (see PEP451-��qhasattrW, "__path__")��`�^?cod ��RequiredY�implemented�T # eventually rvsw������source =a_��O�usame as�A _ier = _SixMetaPathPer(____) class _Items(_Lazy�0"""�0ingm�zP = []�@mark�;A _9�_`ibutes,�e��AAttr�("cStringIO", � io��/),@�`filter*�itertools �qbuiltin �i$� �L� PfalseD� Q� �H�*��\�PinputV�#__� __� ��Eraw_(� �N�@tern@� O�Osys"4�0map1� �~�i!���C�`getcwdF�o���u� ���b)�:����� �b@�Arang ��x%� ��z�{� S�]@lib"*PY34 else "imp", "rel!oad"), MovedAttribute("reduce", "__builtin__�functools:�shlex_quot?�Ppipes9��� ��x�StringIO)� �/iop�UserDict2� �collection��/�5Lis;� �;��x��?�Qxrang  _l2%�.�30zip�Biter8, "G�i!���C�b_longe  K� �8zip*��\�yModule(��,�configparser�C�P�1�Ppyreg,�Pcopy_ �(�pdbm_gnu(�@gdbm�@dbm.�/�_dummy_thread-� � !�C�http_cookieja� �0libQ���.���B�  CM� =� thtml_entitiz���AydefN���.��#��6ml_CHTML1, "?��=���Alien[�� ��:�email_mime_multiparC��n.MIMEM��/�./�X� 6non,�6, "[�?Non^� 5�a� ;tex�T��%�I� 1bas#�B�I�%�I��,�HTTPServQ��".s!�D�:CGIC� �B� jSimpleE��H� acPickl �p��Aqueu/�Q �#�Crepr� � aMcsocket#A, "S�TU�8B�1�RtkintT �'�a_dialoD �C�.�?� filedialog", "FileDialog", "tkinter.filed�), MovedModule('�_scrolledtext?�S�T�O� (�Q� 5impz�A, "S��s��0tix�T����� 0ttk6����6� constants<�)Tk�z��J� 2dndD� �>���8� colorchooserA�0tkC�C���.:�c� Cmmonz2 Co�c� �(�:�c� 'tkc�*1fon5tkF ���� messageboE2tkM�B�G�&�M� )tk� < :�e�urllib_parse", __name__ + ".moves."�"�.2�S�@erroMS�"�S��S�� � S�a_robot���"���L�xmlrpc_clie3�0libM �.�@�BservuXMLRPCS�I�'�), ] # Add windows specific mps. if sys.platform == "win32":5_d_attributes += [�� Qwinre_ ��p] for E�M in T�k�0set"�!(_U�aItems,4�.s �)z�aif isi0ce(5�,G)P���`_imporyR_add_�2�"�Vs." +f�Q) del�' �.�. =�! R����(?") �?�", �") class A_six�"s_wb(_Lazy#�1): !0"""� loading of \�d objects?sixY"" a�t� �A("ParseResult", "urlparse" �Blib.�), MovedAttribute("SplitResult3�/�?�-�?_qs<�)l=�!urldefrag=�$Ojoin;�$�<�$so<�$/unz�)/un|�&GquotQ�[7�D_plu?lib<�!un>�/� � 9�w�%rlencod� ^Vquery� �� <�t(:�Fuserk� �u� Puses_B?men"A�cnetloct�?�Tparam ?�p>�trelativA�] for attr in _urllib_/� _mP_�Q!s:f0set�(Module_six)�s<�,S�R.name �Q) del�/ :� .N�dw�/ =�  _importer._add_m�� 0(__�p__ + ".�(s.�"U�Y �"-��), � class �error(_Lazy#�1): f0"""� loading of w�d objects:six�N�d""" �S[g� 3@URLE�Flib2 �.M� ;�OHTTP<�%�ContentTooShortG�"urllib", "urllib.error"), ] for attr in _u�_�p_moved_��ibutes: set�(Module_six)�s<�,S�R.name �Q) del�/ :� .N�w�/ =�  _importer._add_m�� 0(__�p__ + ".�"s.����"-�+9", �C� class �request(_Lazy%�1): h0"""� loading of y�d objects9six�_P�d""" �Y[k�MAAttr("urlopen�2 �.N��=� <�install_A�&er8�C�_buildA�)@pathF2url� �� Durl2D�6� �@� getproxies4� �>� R1�;OpenerDirecto~#HTTPDefaultE&_Handl$�L�1Red�H�-CookieProcess�$_Proxy�)OBase@�)�PasswordMg'D�CWith_Realm8"AbstractBasicAuth�-I�2J�2�oDigest�1J�3�K�3�[rllib.reques!t"), MovedAttribute("HTTPSHandler", "urllib2 �.requesA�OFile@�*/TP?�)oCacheFD�+Unknown�)�GErrorProcessoM#urlretrieve � urlcleanup4� �>� xURLopen=�_FancyB�*proxy_bypassx� ���] for attr in __ _m_�!s:0set�(Module_six)�s>�,W�R.name �Q) del�/ <� .R�d{�/ =� _importer._add_m�� 0(__�p__ + ".�"s.)��"/�7�j�G� class �sponse(_Lazy&�1): w0"""� loading of f�d objects9six�2_reQ�f""" �f[m� oaddbasLN�addclosehook] �.�[vaddinfo2� �<�6url5� � ?� � , ?�=� %� �I� #�0�), +xobotparser7T� �Pributes = [  MovedAttribute("RobotFileParser", "r�p�xurllib.�), ] for attr in _%�_%� _mj�_"�k�0s: �0set�(Module_six)�sB��,_�R.name �Q) del�/ @�.Z�d�/ =� _importer._add_m��0(__�p__ + "."s. A� �"3�O�� O� class r(types.�qType): �"""Create a six� �space that resembles the Python 3&�1"""T�__path__ = [] # mark as package%�`�j4getj ,�!")8�_error8�,�8�request:�.�<�osponse=�/�>�OA�2�"")def __dir__(self)N�Areturn [''A', '�� �� �� �`�/']1"),�� � �� �Y0ve(�"""Add an item to_B_pItems, D�*� �1) d� re�(g�R�g�Ofromi��6tryf1del v�S��uexcept YE>� K����� s.Pct__[M�]M��!�Q�;KeyK���[raisem�("no such , %r" % � ,)bif PY3��_meth_func = "_ �#__��e�� ����*�`closur3"__ ��#���"�$od�:ode�defaults_�� $�cglobal#� ��"�Oelse�!imx��0im_�"I'������?��� ���A��%��$��E" advance_iteratSnext GName�7 2�3(it�~ 0it.G��() next = advance_iterator try: callable = � except NameError*�5def#�R(obj)��E�return any("__S� __" in klass.__dict__ for���AtypeH�.__mro__) if PY3Z��q�get_unbound_function(��� �breate_<�method = v�1s.M�BType,��k�c0�D�_2�(u�^, clsn���?�IY = object else�,1.im�c���� �,�,�@.__cy�c�e�BNone7�j� (�Rect):�}�next(selfl��_�k��0.__,�"__�F��w _add_doc(H,'�a� """Get the �f out of a possibly #�0"""�\�.=�B= opm.attrgetter(U%�') 6����;2��!�2��p_closuri��(�$� :�/od7� ;ode4�defaults�o�%� <�oglobal;� $��N �keys(d, **kw�"�1(d.%�"�)���_value@�'�B�OitemA�&�@�Olist@�&�@�@view�wj�@er("����.��0� �2��1��+")�W�{�%d.$��>��(@���}� %�>��iP}�%�>��_��,"�_�4� $�6��5� #��4�qB, "Ran iterator 2over the keys of a dictionary.") _add_doc(itervalues, "Return an �Uator J�%�L�items, �T� a(key, Z�o) pair�Olist`�[a�/s]c� if PY3:�def b(s)���rs.encode("latin-1") 2�u2��unichr = chr�import struct�nt2byte =�!.S�(">B").pack(�3del!���3�2int = oper.getter(0)&�Pindex+�s(�0get+�"�4ter!����!io�StringIO = io���TBytes� ��_assertCountEqual = "�"+� if sys.version_info[1] <= 1P�RaisesRegexQ��pS��2� ,���pMatches-�Oelsei�;�h� &" \�[# Workaround for standalone backslashs �m�s.replace(r'\\', �s\\'), "$�_escape"&�� ��i���0ytex/(b'�ord(bs[0]~(buf, i^7�Ruf[i]��functools.partial�imap, ord7�� �3 = 4 = � 1I+�y .��{(���`b, """� l Hal""u �IText �  b(self, *args, **kw �sgetattr+��,)(>� l�B� /�\m� D�n� �5h�'�>�b�exec_ = moves.builtin-�!��0rer3(tp, tb=Nonei�'"if@ is �����b = tp(��3�.__trace __A�dnot tbC� raise value.with_traceback(tb) �araise '�q else:�def exec_(_code_, _globs_=None, _loc �)2��P�"""Execute 6� in a namespace."""]��+�$ifR�@ is U�G�� �frame = sys._get�&(1��%��1 = �!.f�5alsg��&��k��j��#��H�<locG�2delg�]�/el[� W��&s_:�pxec("""c b�-'�_Q""") 4��(�_1��!reB(tp,A, tb� � L�1 ifR version_info[:2] == (3, 2B� p��#a_from(( , �_ �0�'if�g�1���8��Q��Z� �>�*y�/�� �>'� print_ = getattr(moves.builtins, ""�!",)�_8��(*args, **kw �t�z�"""The new-style 2� function for Python 2.4 and 2.5Rfp = Y�.pop("file",'fstdoutt�p�����breturn����write(data���if not isinstanc%�, basestring1��5��H��"trS�J����# If the � has an encoding, �Qe uni�I it.C�Gif (�1fp,M�)6 )��p���-���,_�2�4fp.��F����gerrorsE��"�:���2if "��]��Y� S+�$�0= "l&ct"���0 = ��'e(�,f��8�7fp.1Twant_xu= False�,se}=sep��ew1 �(ifJ6sep )��� �6Tru�� �z�h�S�?str�PTypeE ("�qmust be` or a i6ng"2;endw?end��)�!is/ �1end�code):  �want_unicode = True � elif not isinstance(end, str):+��7�raise TypeError("end must be None or a=�Uing")@�if kwargsS� O�invalid keyword arguments to print()W���� a�f�Prg inK� ~���(if�Sarg, .���1�l�Q�$���Xbreak�9� �`newlin{�G("\n��O�Ispac"� !�OelseS��K��J�5" "�if sep is K���!= �0��0���#= �2�� i,�enumerate( j� ���write(sepU�6arg�*�Pend) � ys.version_info[:2] < (3, 3y�_Y" =a!_ �3def� (*�B, **6��~�Cfp =.get("file", sys.stdout�Vflush/�Qpop("�", False+�� x���w�1if :�a and f�� 91fp.)��() _add_doc(rewb, """R � an exception.""") <0=4�(`wraps(�ped, assigned=functools.WRAPPER_ASSIGNMENTS,��� updat5�sUPDATESq��.�u�Wper(f���Ff = y�����,o�6)(fx?�0.__5�ped__ = � �return f��,�&r ��s�1 �ith_metaclass( �, *bases�"""Create a � *� with a 1�����# This requires6�it of explanaP: theN�pic idea`to makf�SdummyL�`� �PlevelP�w� 3!tiX� that replaces itself�O��w�gactual��N�o� "):��- __new__(cls, name, this_Cs, d2�/����T�(.�)�s� �Ttype.[��-��, 'temporary_�', (), {})�N0��(���� decoratorCc_ing a ���=�$cl��orig_varWcls.__dict__.copy()  � slots = orig_vars.get('__�P__') '���1if � is not None:�"�isinstance(-�j, str)'��+��A = [ �]G�2forj���2 in �D��2popo��2�� !�'__dict__',�(�weakref+��return metaclass(cls.__name__, �Pbases��l�=�wrapper def python_2_unicode_compatible(kc�>1"""& A decorator that defines _B�_ and __str__�hods under Po�1 2.M�U�3 it doeahing. %�To support>�a�3 with a single � �,�+ a�O�ing textJ�apply this�ao the g�fif PY20if ��'1in ;.,��}raise ValueError("@@ can0be �Bied �K��"to %s becauseV$n'a()." %H����bH�65_ =�W�B��� = lambda self:�.:P().ens('utf-8�a� # Completepmoves i�mentation. # T�M��3!at,�bend ofmodule to speed up m�Aload0# Tp�into a package. __path_�[] # required IqPEP 302g� �14512�=�5��;�@see &�366 @ReservedAssign� if globals()*"__spec__")��(�B.sub�_search_loc&�{��v�P451 @�dVariable # Rec other six� thvporters,c"y yproblems.`an # h} n  ix�r]�d from sys.�s3pthen re�ed. (Setuptools*" #�jsome reason.)*L�1eta�(�%i,��enumerate(0��# Here's b�`l nastRs: An"y"`e)PUmight# be float`around$erefore, we1't )Pcheck\P��� will haveM�inserted an*kdifferent�#if (type(im5er) == "_SixMetaPathImporter{" and �importer.name == __ �I__):,�del sys.meta_path[i]!�Qbreak��+�4i, Z� # Finally, add the�1 to��V� V��y hook. q�.append(_Y�8) # module pyparsing.py # # Copyright (c) 2003-2016 Paul T. McGuire /�Permission is hereby granted, free of charge,�any person obtainingx�`a copy-�this software} associated documentats�files (th�3 "S5�!")k�qdeal in*� without restricG�, includ�"�Climih��|s�Ause,�,Hqify, me�publish,� dia�pbute, s�0cen9�and/or sellE�2ies�$e �,� toF�p`t2~�Jwhom�is furnished�Qdo sou�Rject I����following condi�#s:The above�Rnotic��qshall bE eds��1cop�r�stantial 7=ion�.�.HE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KINDz%EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THEN�`IES OFzMERCHANTABILITY, FITNW�FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT� IN NO EVENT SHALLq�aAUTHOR� COPYRIGHT HOLDERS BE LIABLE n� NY�CLAIM, DAMAG�qR OTHER*��1WHE�IN AN ACTION CONTRACT @TORT>�WISE, ARIS`FROM, ^ OF#�IN CONNEI��z���� OR�@ USE1�T� DEALINGS��]-�� __doc__ = \ """ p�S�- Classes amethod�Rdefinexecute �xPmmarsc�� U�iN� alternative approach8PcreatBand \���esimple]�a, vs.2traFal lex/yaccR�A, or&�!usregular expreEs. With�, you don't nelearn a new syntax for ��1gra��p�Pmatch�f�! -�%m provid`q librar}cu@that� � to1@struOh  directlypPython.|@HerePa pro��^��e "Hello, World!" (or Agree|!of��form C{"<salup>, <add?ee>!"}), built up u L{Word}, L{Literal}OL{And} ele?s (L{'+'<ParserE�.__add__>} operator4 gives L{And} expressions, strings are auto-converted to L{Literal7�):: from pyparsing import Word, alphas*�# define grammar of a greetingN��! =@�(?�) + "," +�$!"[�hello = "H �,*� ld���qprint ($�r, "->",v�.�!eS� ))R�pThe pro� outputs the following� p�a -> ['�P', ',�PWorld �4!']\�Python reentation�e��v��is quite readable, |�1 to�self-explanatory class names, and'�0useZ� '+�!|'�'^' oper8�$s.�L{ParseResults} object returned%�rElementB<?�� >} can be accessed as a nesglist, a dic ary, or an �Awith�d attribute�}module handles som��Wpproblem!attypically vexwhen wria text rs: - extra�1miswhitespace (c�Fabov9will also�3!",�B ,  �Qetc.)p�0quo�embedded comQs ""P__ver __2.1.10" �BTime�07 Oct 2016 01:31 UTC+�bauthor&�Paul McGuire <ptmcg@users.sourceforge.net>��! tweakref� �@as w�# 1�Ecopy �5sys �@warn�%re �sre_constant2�QcolleB�p9�traceback�Cypes�datetime���!0try0_th*�0RLoT�except IXError4�3��i�6�+ ]��a�OrderedDict;_�/ w�X��oI��k\��9�`����p = None0#~ sys.stderr.Uqe( "tes] #,  %s, %s\n" % (5__, �!) Q__alla[ 'AnkCaselessKeywor�� CharsNotIn�`ombine ��f��AEach�mpty', 'F@edBy�RForwa_�GoToColumL�PGroup"��RLineE�� �PStart#�� 'MatchFirs�!No��%�QNotAnt�OneOrMor�rOnlyOnc �p<l/�Or', 'ParseBaseException', 'ParseElementEnhance�x)�hxpress<�fFatalE*�" T�uResultsM�gSyntax)�|�r}��)�QuotedString�RecursiveGrammar>� 'Regex'�aSkipTo �;�6End �QStart�!up�� �AToke� �Converter', 'Whit1WorI���T�� �R�ZeroOrMore', 'alphanum� � �18bi�anyCloseTa�sanyOpen�cStyleCom��1col[�commaSeparatedLisL���onHTMLEntity2�untedArra�,ppU�:dbli 'dblSlash|�gdelimio�`dictOfe�downcase>�2emp�2hexw 'htmlQ�Ljava�1link��c� �c� �!no@make�1Tags���6XML�tchOnlyAtC6 'matchPreviousExp �bLiteracdnested'�nullDebugAc*�R 'onepopAssoc�operatorPrecedeEprintables�Dpunclpythonq�aremove�areplac3 '�@With�srestOfLZ+sgq 'srangws02 '�|Qtrace vunicode*up withAttribuEp 'indePBlock�originalTextFopungroup�infixNotax@'loc�`�BClasSKM�;�t!MaG�pyparsing_&��] system_ver = tuple(sys.�_info)[:3] PY_3 = 5�[0] == 3 if "��: _MAX_INT1�.maxsize�Bbase`��"tr��Oshr = ch�@_ust�s#�%�# build list of �ale arg� tins, that can be used as 1e asL�<�pArgBuil:� = [sum, len, sorted, re � ��u�,$ , set, any, all, min, maxXOelse2int�zA = x ���9Adef �S(obj)F���"""Drop-in � for str.��tries to�U friendly. It first '���_�% G�B. IfK�`fails h3 a L� EnPErrorkCen iM� 1ode��j� ^�then < returns the0� object | e\�sR�u��%�rdefault�ing | ... >.^�6""" �if isinst��,�M return obj �Ftry:���# If this works, then _ustr(obj) has� same behaviour as #�L, soU�it won't break any existing code.1�ereturnR��except Uni8�!En�Mrror�aElse e!�= ita�B = uE��.*��(sys.getdefault� ing(), 'xmlcharrefreplace')V�!� = Regex('&#\d+;*�+.setParseAction(lambda t: '\\u' + hex(int(t[0][2:-1]))[2:]}�4�.transformStr�Dret)K # build list of single arg�0tinaoleran!�Python versionat can be usedp�! a�sX�pArgBuilV�R = []�import __�Rtin__�`for fn`in "sum len sorted re�e�tuple setSall min max".split() �.append(getattr(�,�)vAttributeE�continue��b�� _generatorType = type((y �y in range(1)r� def _xml_escape(data�A"""E� &, <, >, ", ', etc.L�aK�l0of 9�F.""" ampersand mustcd firs;from_symbols = '&><"\''�'to�('&'+s+';'�s�"amp gt lt quot aposT��f�@,to_5�Azip(�w�&, h���O��" =��8�1�^� �,���class _Constants4ectW�@pass'�0alp�f�=E.ascii_uppercase +�2low�` nums;� = "0123456789" hex�!= �+ "ABCDEFabcdef" }��1 = �1s +-� _bslash^�= chr(92) printable"".join(ccRs .'� if c not�whitespace.)QBaseE� �4@"""bBion <�����runtime (�s��P# Perance tuning: we cruct a *lot*PtheseoQ keep#0�om��Afastcossibl^_init__( self, pstr, loc=0, msg=None, elem � ����3�`.loc =2���� if;�@ is >���5�Qmsg =m�6�����;"�OelseH�6msg+�G�elf.pstr = pcstr � self.parserElement = elem#� args = (pstr, loc, msg) (�@classmethod�def _from_exception(cls, pe):#���6""" �internal factory Q� to simplify creating one type of P�Eh� R��� another - avoids havB�__init__ signature conflicts among sub�&esT� �return cls(pe.1pe.!`pe.msg� b6$_getattr__( , aname &supported -�ibutes by ,�7areT�X- lineno - �Qs the�p number8��V text�F�;colC�ocolumnE��� F��pcontain� q3if(!@== "G�9no"-����"noX�b& )�&elV�in ("col", �_umn")_�?col\��� R�sraise AttraError(G lsh �0"%s (at char %d), (b:%d, col:%d)" % \;�m���d �,.>}5rep�`_ustr(L�7�markInput�~� , �PerStrSj= ">!<l"""Extra s�G� /��iZ�! sI��d[�" P0ocaMwith a special symbol.9 �}�b_str =&��+���_9!��6- 1'�!if�� E�c�"".join(�w�![:�U�&],S���h,fG�F�3:])�@�_ �@str.Y#p(!� di�9��n�".split() + dir(! ($EBase(b� thrown when  expressions don't match l�;3,- text - line - returns the�containing�exception text � �Example::���7try���!Word(nums).setName("integer").parseString("ABC")L�}� P#�E�[as ped�print(pe=��{��"column: {}".forma+�[.col)0�{�6�s�Expected �� (at char 0), (K:1, col:1R�w�1W�2""" �pass class�UFatal�(�EBase�)�"""user-throwable %��n when inconsistent d &enis found; stops all*��immediately� eSyntax�� ��just like L{� *�q}, but ���ternally�"an= L{ErrorStop<And._� >} ('-' operator) indicatea �As to� W�� because an unbacktrackps� e� has beenJ +2#~ !Re *`#~ """srimentalD�-@e acs can raise this!o ��P#~ py���Bto r�qinput sd�:#~ - with a modifi,�, and/ore� 3�start loca�-�P#~ See values of� )1 in��qtructorz��eT� Iin a0� ��3new/�.Z�ASett>h�ras Nonel@s no0ngej�ybe madeC� #~ def __init_( self, newA, re7DLoc ?�+�A.new?fText =9���*��I�=V�}RecursiveGrammar ��6"""_$by@rEle.validate} igZ� could be imprDly r��e`�IList�"�rTrace =6����Fb�Cstr_a� O�/ "q: %s" %d�x��e�_ ResultsWithOffset(objectU� _(�d,p1,p2�����.tup = (�;�getitem_>�i:��A�[i] def __repr__(self): �preturn ��.tup[0])"�def setOffset �(,i>��N��2�1 = �� �[0],i) class ParseResults(objectC�2"""h�Structured p/�" r0�, to provide multiple means of access$�2the:�fd data�- as a list (C{len(\�#)}�r - by$�Pindex*�&����[1]}, etc.:�attribute9�#.<B��Name>} - see L{rElement.set�'���Example:� integer = Word(nums���@e_st�(*� ]��("year") + '/' h� �+k� A�_monthB�*Wday")�# equivalent form�#�� ��*("��s���#*rString �$ %% =�.E�("1999/12/31"l��Atest(s, fn=g#�print("%s -> %s" % .�(eval(s))1M�")q�L���?[0]�'.'!�.5 X�6� i0�`�'minutes'%� �.dump()", str s��! ['k ',U, '12 �L31']0[0]5�4� ��#�,2'!��?�'31�6���#�FTrue?���%�GFals&� � ��- day: 31r�!- H: 12�� : 2�q�__new__(clshkk=None, name �pasList=�q, modal � if isinstance(toK�X, cls&��Mn #���Sobj =x.�&�.__doinit = � F�DtobjP# Per[�� tuning: we consx a *lot*Sthese, so keep this`�#0� orUsmall and fast�spossiblc��@__( *f,X=c }�]�B self.__doinit = False �self.__name = Non �PparenC�"��accumNames = {}f�PasLisF� �$�modal = � "�pif toklC�!is�:!���"�J= []�if isinstance((� , P�)I��(�$ =|�+[:X�/elZ�_generatorTyped����)�Oelse�[� ��0dic��F() f�1if ais notaA and� z��+�"ot ��m�[Y�V] = 0o��)� :�%�O,int+�� = _ustr( �) # will always return a str, but use0� for consistency���T�! =� ��(=`(type(), basestringV)?A in *�,'',[])� 9�,X�4��G*�D = [ ��'�2if z� ���ParseResults��>��H_6�WithOffset.copy(),0�H�������k��x�?[0]u�V�� ���?try^�9�c�Q0��-�except (KeyError,G �QIndex �$def __getitem__( �H, i Q� � i, (int,slice)*����I�3.__p�'[i�8��c�o!in�6.__7J� e��[i][-1][Jp��� !a[ v[0]*v�a�% ]-<s<Wk, v,d=M ,��/v,,�� �kO �.get(k,list()) + [v]  �sub = v[0] �elif isinstance(k,(int,slice)):)��1�self.__toklist[k]O� #�d��OelseG�3dicG�[���p.get(k,f�()) + [_ParseResultsWithOffset(v,0)�� � �Hsub,M� �ub.__parent = wkref(�2) �def __delitem__( �H, i K� u�iW mylen = lenL�d" )s�����1deln�"�4[i]��!���# convert int to  I� ��+���H����(�K < 0����Qi += � _��=z�{(i, i+1�# get removed indicesF��!= range(*i.-�(y�+))Y�6�.reverse(�t# fixupr� in token yjionary�for name,occurrences6���:�. /s(D�A�j2��L�'�k, (value, position):�enumerate(�l��y��'�A n�D - (z�H > j]� �(contains)k)return k� SH�4lenC�C ): 7�47�bbool__6�Q( not�r��co__nonzero__ = __E�W�Oiter����9�d=�d[::-1]�C��d�Bkeysh� Lif hasattr�4, "7�"7J ��rf�?�=��]� s� /�!��E�A�� �<�����$�  _�1(k,�_[k]) d� X�wif PY_3����m� ���" /�� �A"""RPs an '�ator of allE1d r @�(Python 3.x only)."""�Q�3t��o�of all named result values (Python 3.x only).""" �items = _iter ��"""Returns an !�ator of all namedo�Akey-s�_ tuply� Velse:h��Z�5key�� ����2�r�q��s�";�hu� _lH}�@def U( self )|�b�s (as a list in SP2.x, ��33.xl�b��rOJ�(�.8())��Z� 9��Le����H��� R $ofak6���?has:"""SinceZ")  + , this method is helpfulFbypassing/ code that looks for the existen��~ny definss�R boolm__tokdict)t� ���2pop, *args, **kw �0?b�`Remove�� *�E at specified index (default=C{last}).{��L�Supports both C{j} and C{�} semantic C{�p)}. If GVed noP�argument ortnteger �, it will useo�c�H�nd pop tokens from���cparsed��&a E�[non-i� (most likely a string)��J���he corresponding�a'E� 1 A secondQ�H�2�C�sed, just#in.Example:w�urBr_first(gn����\�0���print(OneOrMore'(Word(nums)).parseString("0 123 321")) # -> ['0', '123�321'] ��print(OneOrMore\�@addP_�Action(remove_firsty� t� v�label = �zalphas)"�qpatt = )�("LABEL") + � ;���A� 6AAB .dump()) =�# Use pop() in a a! aB to $ named result (note that corresponding value is noth�I�d from list form ofV�  de�(tokens):Y���.�;%�rreturn ,� �<{� q����{+s:�P['AAB @�1��!- �\: AAB?� 6"""� if[ args���g = [-1/pfor k,v kw"�|.items(if k == 'default']����?�@ = (�k[0], vTOelse8��raise TypeError(" ) got an unexpected keyword��ument '%s'" % ki�if (isinstance�int) or +���1len/�)�1,� ��8Mself/`ndex =�7s[0p�p� re�7� [i(� �Odel �'re{W����,+�y�@get(�,w#, '�VX=None� RsNPmatch>the givenW�or if therSAsuchE�, �"n �s �B�(C{�} C{�}U�&noL� *�is specified.��pSimilarpC{dict.6)}.L� �|Exampletinteger 5��f�pdate_st#�-�a("yeare'/' + �_month�Pday")N�����$= n� :1999/12/31">�9�(?���':�'�3�hour", "notk'not specified'  �print(result.get("hour")) # -> None 0�6""" ��if key in self:��.�Rretur�V[key]�Oelse-�defaultValue 2�def insert(g�p, index�gsStr )K� �I5� s new element at locationG��� the list of parsed tokens.��� �Similar to C{7�.�4)}.��2�Example:���nOneOrMore(Word(nums)).}�String("0 123 321['0', '123�X321']q��^�r# use a�1 ac�#toA �e��Afron#�"d s��b�`_locn(�,0�,���J$ 0,z�*n)T� @addPA�(H�{�0?0, 3���� .�h.__tok k�p# fixupDAicesF�31 di�6ary�for name,occurren2�s��6�|.items(D�=�Pk, (v`, posi)s�enumerate(Z� A����q[k] = _TRsWithOffsetf�D + (r� >�Dex))u� eappend?temAdd single`to endy��OYT�8�}���eqcomputeP0sum�Nintegers, and add itE�#�:endc�[R_sum(E�.�,�umap(int����mV���l iW, 444n i�( ^;ext^?seqa 0equb�~?�gg6katt = lalphask 7�6preverse��matched ssB makwlindrom��9�#�4_pa!�>:  �tokens.extend(reversed([t[::-1] for t in )�R])) :���return ''.join(*� (�print(patt.addParseAction(make_palindrome).p�String("lskdj sdlkjf lksd")) # -> '����dsklfjkldsjdksl'�6""" �if isinstance(itemseq, �Results):/���self += -��Oelse,��.__toklistX:�2) =�def clear( ]�r� �C%� all elements and r�r names.T��� <�1del^��6[:],��y��Rdict.� �__getattr__�,q� �;try�_�[�s��except KeyError9����"if�'in��� I�(�!no��.__accumN1 /��e���g[-1][0��0����G�Mb([ v[0IvI�0tok�d�' ]/\��X���AV__addYotherRret =+Wcopy(d���1+= 4�R��8ret?__ii� "ifJ�; cAoffs�Flen(�#���6add-�ambda a: �pif a<0 !2 a+���?��n ��.�2��� = [(k, _QWithO�(,�(v[1])) ��W� ��HA(k,v������ j��!k,�3�� c�q��Zz[k] = v�� ���/���)�.__parenOQwkref �r���w���:�� +�.update(Q�g�j� r��,D�� �Q,int)U�[ == 0[# useful merging many60 us�sum() builtin��O�.� w�this may raise a Type; - so be itd��+!� def __repr__( self ): �return "(%s, %s)" % ( /�-�.__toklist ),�dict ) ) R�def __stl� -'[' + ', '.join(_ustr(i) if isinstance(i, ParseResults) else�i) for i in��)Z�)]'�asStringList�, sep='' out = []��d�>temg�A�)�0if >�0andY� ��!��out.append(sep)c��� �Z item� ��2����q�!+=.�)._� _��7�  1tem�_���r8outP&asI �6"""�R<�ps the p" r as a nested Xof matching tokens, all conver'�Ato s$s.���Example:�0patOneOrMore(Word(alphas)�0 = 5�.�-("sldkj ls� �"<�# even though�N�aprints6�P-likem, it is actually a pyv���I��Q�b(type(c���) # -> <class 'M�.M�Q'> ['��u�� ���k� y�c# Use ) to create an� 5��_=.D� +� �6��� ��W�� E[res� sHres,9ts��6elfr]�SasDice_named"�boionaryinteger = Knums@date3 = -�q("year":/�_month�<day  4 = o� ['12/31/1999'�  $prP(['12/� 31� �u�], {'day': [('�, 4)], ' ��@�0� �K�K2)]}��_  9� �6� �� ��]�%'>���'12', 'month': '31'} �J# even though a ParseResults supports dict-like access, sometime you just need to have a 3� k� imM�Z json�`print(�.dumps(r�+)) # -> Exception: TypeError: ... is not JSON serializable_�.asDict()h�{"month": "31", "day �@1999�Ayear�62"}b�6""" �if PY_3:��k�item_fn = self.�s"�Oelse1�r5��W�C��def toItem(obj)N�f isinstance!�, /��[��if obj.haskeys(#��'�areturn+�M��!���������@�[�v) for v iT�]L�H�D�:obj/��`��&��E((k,q�r�!k,t��dd_fn())&�YQcopy(  R s a new 2� of a C{P}*Fect.� F�Yret =x�.__toklist );�2ret���\*���.�(/�Pparenf�"__� U�accumNames.update���Fname��� X��*8ret[RasXML\��, doctag=None, >�dsOnly=False, indent="",)matted=True(Deprecated) Pthe p js as XML. Tags are cre4��h� tokens and bs thatudefinedH���snl = "\n1 ou[�B��! =x((v[1],k@(k,v�)%1tok�s��g�nextLevelI# =t + " "�p�# collapse �@s ifO�4ingvdesiredh�!if0for*�,ed~�x�u�� "� ��B`Tag = x ���� �<�+�>��!ifC0.__ J���N�� �(�U��;TagB���2ame9�3 � return "" �Zelse:���selfTag = "ITEM" $� out += [ nl, indent, "<", 6�x, ">" ]4�for i,res in enumerate(1�.__toklist)�if isinstance(res,ParseResults.����2��b�namedItemsS��%����res.asXML(4�F[i],��/�� 8�Only and doctag is NoneL�extLevelIW�formatted)]5��� ��l��#ividual tokene if there a  tV2res#�1�H��n�/[i�rif not /��$� (��continue���8����� ���xmlBodyText = _xml_escape(_ustr.)){��]nf{�e[��>� S"</",�  ��4��5Tag5��.join(out)9def __lookup+H,sub�0k,v<��c�N`dict.i�(0��t��4�Pv,loc2�;�#�`if subv���G��k� ���bgetNam�"Rs{�]�|Bthis expression. Useful when several w���different4�s might match at a particular locatZ��G�Example:integer = Word(nums@ssn_� = Regex(r"\d�-�� �"7�house_number@�1Sup�v('#') +s�, alpha~��user_data = (Group(house_number_expr)("�o") �| Group(ssn<�_ssn")2�`integem�[age")2�user_info = OneOrMore(�Kdata.� n�result = /��E�.parseString("22 111-22-3333 #221B�for item in P�:e��`print('�.getName(), ':',<�7[0]�-�+s:G�age : 22]�Xssn :� �>�&1B!�6""" �if self.__name|�hreturn!�9�⪙�kparent=�Tpar =<�"�(��kif par8���y�par.__lookA;elf@�<els�>�KNone�P(len(�) == 1 and"��;�4 #�.__tokdict-�1nexrV�3�.values()))[0][1]'{(0,-1))��J�1keyH����E��*�def dump�, indent='', depth=0, full=True� Diagnostic method listing out the contents of a C{PMRe2s}.��^Accepts an optional C{�} argument so tha[�Ais s� can be embeddein a nested display�`other 6. �|Exampleek = Word(numskpdate_st-�("year") + '/' + �_month�<dayG��!I =�o� '12/31/1999'�<(?�.0� Z`['12',�U, '31 �`�]�p- day: � ��L: 31��7: 1 [�=7= [i�NL = '\n'J�out.append(S+_ustoasList()) !if f2hasQ ��~�sported((h�ak), v)0k,v�?.+�(d�A���� *�%�h���'� if>��!��'NL����$� "%s%s- %s: " % (Vq,(' '*I), k*G��� if isinstance(v,ParseResultos): �Oif v��6�out.append( v.dump(indent,depth+1) )a�Oelsea�_ustr(v)Q�M� �?repH��$elif any(isinstance(vv,ParseResults) for vv in self=1v =���<�"i,>�enumerate(vE��[?if �7�"\n%s%s[%d]: �d%s" % q(' '*(S)),i,�o+1)),v.�6,v)!return "".join(out) �def pprint(, *args, **kw �2"""5��qPretty-;�!er!p32d r5 as a list, using the C{n�} module.R�Accepts additional pos �or keyword ��^�qdefined|��\�K�f�.m�ethod. (U{http://docs.python.org/3/library/4�c.html# ��}6�Example:i = Word(alphas, �Knums74num+����func = Forward(<�0ter=�p� | K�| Group('(' + ?�[+ ')':��B<<= <�+6�"Opv�(delimitedList(h� \! =e�.String("fna a,b,(fnb c,d,200),100"�D�(width=40%�\sav['fna',�> ['�= 'b(� ['(', 'fnb', ['c �d�`200'],/]]�0 '1�]t� ��G1.as<)Py# support�pickle protocolm��__getstate__(}a.__tokt?��$�dict.copy()�0�� __parent is not None andm��Q() or�K� accumNames'� Qname ?�s,����1&[0 (self.__tokdict, �8par�inAccumNames�self.__name) = state[1]I�!�a>�_ = {} �.update(r�)0�if par is not None:���q�parent = wkref(parE�?els7� �Z�" [�def __getnewargs__(f�)z�preturn �.__toklist,�� �8asL�Zmodalj�?dirc�(dir(type�@) + l��.keys()))P�!collections.MutableMapping.register(ParseResults5���col (loc,strg�A"""R�Qs cur\column within a string, counting newlines as � separators.ZThe first L��umber 1.� Note: the default�s_�qbehavio to expand tabs in2�Sinput�q�`beforer��W�1parO�process. See L{I{rElement.(�!eS�/}<�>} for mg�pinforma~�%on�,s contain�C{<TAB>}s, � suggested methods to mai0�! aQ�@consnt view of��d�,�A loc�b��k�}R�@posi�s"eP�1"""0�! s"rg�1 if 0<loc<len(s)�[loc-1] == '\n' �� - s.rfind("\n", 0,���/no�*�" nB2Q��.YP0,loc21]��(m,//g ���'�^ ex�4loc)�!�JclastCRO�0�7nex'�5��3if &�O>= 0�trg[lastCR+1:nextCR] else: ���>return strg[lastCR+1:] def _defaultStartDebugAction( instring, loc, expr )X� print (("Match " + _ustr(&�) + " at8��1loc� (%d,%d)" % ( lineno(loc,p�j), col�M )))�ouccess�s��W�B end�xpr, toks��'ed��!->����<�.asList(��PExcep<��=exc�?� raised:Vc�Hnullb�c*args)"""'Do-nothing' d! a�� suppress�ging output du parsing."""D@pass|"# Only works on Python 3.x - nonlocal is toxic to"�2Kalls #~ 'decorator$�trim fun� c&���mXthe arity of �qtarget'H��?�_#�(E�P, max$=3Q#~ ifb�@ in �leArgBuiltins8�)3#~ ,lambda s,l,t:<�2(t)#~ limit = 0�afoundA�u= False���wrapper(r�9V�,J�B�&�wwhile 1��;try�� re��w�[`�#:]��&��6#~ w�c = Tru�"���6ret��e TypeError�$if==7 or~�7��a� w���_ += 1�dcontin��this version@2.x-cross-compatible 2�_2*C= [0* [�K# traceback@dataLucture changed[QPy3.5 rmalize 8��to plain tuplesY�if system_u[:2] >= (3,5���# ex�t_stack(�(=0%��)��# special handl4for3.5.0 - K�Q deepk S�< by<AoffsA -3> �" =�1,0)l2 -2������frame_summary =E.�c�-m�+�B-1)[��P���)[(]�.filename, frame_summary.lineno)] � def extract_tb(tb, limit=0):&��-�frames = -�oeback.9�?�)<���2 = L�7[-1��d�return [(!�1�.filename,9�� �Gelse��_stack���1�/tb.�"tb+�� # synthesize what would be r�_ed by,�u� at the call to T�user's parse action 'func', so th�e don't incurC�ppenaltyW�<�BtimeU��LINE_DIFF = 6�$# IF ANY CODE CHANGES, EVEN JUST COMMENTS OR BLANK F�S, BETWEEN THE NEXT�E AND��� CALL TO FUNC INSIDE WRAPPER,2��Mk��BE MODIFIED!!!!�Pthis_% =>(c6=2)A0pa_L/�_E = (B�V[0], �01]+��2) o�� wrapper(*argswwhile 1_�;try���0ret2uncH�[�[[0]:]�.�foundArity[0] = Tru���T�[��except TypeError��# re-raise'�@s if y did not come from our a� testingr��z�9if �v���'�u�>� �*��Q��sys.exc_info(%��!if�>[:2] == @�_����ofinall����@del O"if� `<= max�X^ += 1L��j�ocontinR�p# copy j i�  for sensible debug outputr��4�_4�B= "<~">""� 0�getattr(�A, '_H�C__',I��� 8�class__').D�j E'7ionJ�u�q�C = s�6��M�.�3+���� P�rElement(objectJ`"""Abs@t base level2r e4� H�3.""?DEFAULT_WHITE_CHARS = " \n\t\r%�verbose_ �trace = False  @staticmethod�def setDefaultWhitespaceChars( c�2 ):-��D�Fr"""��Overrides the dF�% wG�A�& 2�Example:S��W�#=�Q are �, <TAB> and newlineX��E�OneOrMore(Word(alphas)).parseString("abcl�\nghi jkl") # -> ['abc', 'def�0ghi�Zjkl']h� �#�nge to just treat�� as significant;�P�rElement.j" \t")<��8�  �DEFAULT_WHITE_CHARS =�$rsa inLiteralsUs8clsW x�Set classS be used for inclusion of s# lW� into a &r.- �|L�}�w�3is �H��linteger = lKnumspdate_st#�-�("year") + '/' +��E�("month�0day�r��j �4 e� 1999/12/31=����/� 12� � 31 Y�Suppress 8�`  �_.YCE= cl�\__init__( self, savelist=FalseZ�!�0Act = *�(>#�Efail"�(No!#~g�.name = "<unknown>"Pdon't6ine(�, let subr�ry/except upcall�`strRep }��resultsN�!���AsList = b�6kipg = Trui�d: = � a�HcopyH�h��mayReturnEmpty = #when checkingleft-recur x�keepTabsG� �ignoreExpr"�_debug?�symkd = False \ self.mayIndexError = True # used to optimize exception handling for subclasses that don't advance parse i`�3 �w�errmsg = ""�modalResults�cmark r�names as 4� (report only last) or cumulative (list all)t�pdebugAc��t�w( None,� ) #custom ,�" a-� H�Are =6� �callPrep davoid redundant .�s}@preP3�N��DuringTry = False &�def copy(2 ):��|"laMake a+� of this C{o�rElement}. Usefuldefining different for the same$��6�pattern, us�bcopies{�e original.�2e e�.� �Example:���`integeWord(nums).set�(lambda toks: int( �G[0])L�0K =&��W�.S_).addQ�M�*1024) + Suppress("K"a�Ma�'f��Mf�4�� pr�OneOrMore(14K |�M �!). Stf("5K 100 640K 256M"2Y�s`[5120,7�, 655360, 268435456]�pEquivalN@formcC{exprs} is just �<()}k��N(I 5 cpp� �d�2cpy:r! ="��'[:��/�ignoreExpr{� /�"ifO���DefaultWhiteChars�[�w�1 = .DEFAULT_WHITE_CHARS�return cpyVrsetNameY , }_D-e%�0is ession, makesMg7anddmessages clearer � ABC") # -> E: Expected W:(0123...) (at char 0),7ne:1, col:1n�!""F� 7�}� 7=t�n "Expected "� + self.name �if hasattr(�,"exception"):'��.�� �.�b.msg =S�ferrmsg.�areturn�" �def setResultsName( � , �, listAllMatches=False �2"""J���aDefine;� for referencing mC�� �tokens as a nested �Gibutof the r�ed parse r�.s�NOTE: this,��W�s*copy* D�original C{PF�rElement} object;N�H�is so that�client can d�a basic eH�a, such�nK�integer, and e it in multiple places with dif/tA$s.�Z1You�@also +�1 usZhe abbreviaWvsyntax,�C{expr("0")}���*�. +�&- G�see L{I{__call__}< �)>}�Example:date_str = (' x�year") + '/'{�� �/+ A�_monthB�*hday"))�z�# equivalOform��)("��*("��{�q e0new�&(),�!ifP.endsW=("*3��! =(�V[:-1]>��� 7Tru~�.�2J�E�$�Smodal[�%�+otP3�r :�tRBreakb �0Fla�� Method to invoke Python pdb debugger when66 is� aboutI�"be|d. Set C{�}�����enable, ")toM�0dis� 5if U� N_�� a��D�er(instring, loc, doAc9 s=� , 1Pre �D����`import4 h���0pdbh_trace{������/( � � �K�Der._�T�8 = c� ��#.�$ =#�Kelsek s=�/,"{� R�� s�� �thod  return self def setParseAction( �, *fns, **kwargs ):1��5�6""" �Define a=� to perform when successfully matching po� element dB�i|�.W��V�fn is a callable method with 0-3 arguL�!s,$� ed as C{fn(s,loc,toks)},_���-�'� or just�0)},�'re - s = the original str� be��d (see note below)�c - locD�@loca1 ofT�+2subW� 9��� = a list4�ped tokebpackag aa C{L{UResults}} objectY�I|�1fun�s in fns modify�\�they canT@themt�gW�value from fn, andK�V�6ied�� will replace)�`Otherwise, fn doesd1 ne��Aany }�.� Opial keyword= �m DuTry = (default=C{False}) indicate if�should be run dF� lookaheads`altern>�xtesting�QNote:�v�`��Xbehaviorato expQ!ab�Sinputbefore starm�\���T�0pro. See L{I{�!eS'}< �>} for mK� ing�%on�s containi�C{<TAB>}ssuggesteds@1mai0�& aV�pconsist.Dview�d�,�eY�g�lnd columnW�1posxsJ&inB�U�t7�Example:0 integer = Word(nums�n`ate_st#�-�u+ '/' +=� ��dB�.�("1999/12/31") # -> ['� ',_�U, '12 �L31']W�Q# usepconvertsints at#�Ftime����.Y`lambda s:�(O[0])&>#�= ati�@fielzrw� s,'�>s�h�gf#12 �631]O� .�|n! =(map(_trim_arity,�Hfns)>� i.get("��", False)  return self �def addParseAction( �, *fns, **kwargs ):1��5�6""" �PAdd p?�! a@� to expression's list of%�s. See L{I{set~�*}<�6>}.k� ��=�examples inI�`copy}<� 5� ���.��1 +=�(map(_trim_arity,�ffns)))w�?��callDuringTry =/.�2or 7i.get("�", FalseW�QCondi�{�  �a boolean predicate fun�F forg��� signatures. Unlike C&, g��s passedGUC{addB} ne�0�success/failiTthe c9.� OpLal keyword arguments - message = define a custom�pto be u�0in r�0rai�Aexcef�� - fatal = if True, will 5� �F#�E>���Astop6 ing immediately; otherwiseF�A�� �E3:� integer = Word(nums).(lambda toks:1�( �8[0]�cyear_int�W�.('�. e�a� >= 2000,|�="Only support q�s"� and later"n�pdate_st��/��p+ '/' +�� �7��Presul�L�G St ("1999/12/31") # -> /: � (at char 0), (line:1, col:1� Ymsg =h@", "  ed"r-dpexc_typ)ifb�R else�mn)fn` W pa(s,l,t�j��aif notC(fn)5�6��:�R�-�7msgD�%��M.append(pa)�%��RrsetFail�,fnxDpperformX��+�s at this expressvion. �.Fail acton fn is a callable function that takes the argumentsJ� C{fn(s,loc,expr,err)} where:)� - s = string be�lparsed'�loc = loca�L� ]�0ess� match was attempted and failN��9�! =�o�J��7�#rr6�Qexcep�ithrown�'Th1 returns no value. It may :�` C{L{P�dFatalEX�)}}S�Pif itdesired to stop ��6�immediately."""=�Pself.�A7= f�� %�" 5�def _skipIgnor!s(!�B, in,' )�QsFound = TrueL��]Qwhilea!�6��� :�GFals;�� �for e in� .i�keExprsH��,�?try�����1��"��dummy = e._X,e(���3�� � '�4 �7pasS8loc1preL�/if> _�. ���Y��/Whitespac wt�w#�GChar�G��X0len4en(q�)o��<�2��0�P[loc]+/wtW��9�H+= 1�Y�OImplZB, doL s= Q�D, []k��SOpost, tokenlistP��R�#~ @profil/�c�NoCache�,PI�`debugg`"= Q�.�@ ) #z $ )�!f '�:�"or} #~ print ("M ",@,"atg"G"(%d,%d)" % ( lineno(j), col�+ )B@if (\��9[0]s����)� ,����1��)ifVM��N1Pre[ �<�0pre=U�.�v <elsp L�4��� tokensStart = preloc �Jtry:������loc,tokens = self.parseImpl( instring,k�, doActions )f�except IndexError���t�praise Ph�E3�8ionm�Dlen({�"),�berrmsg � |�x�Q�EBaseU�o as er�#~ print (".��@d:",5���"if�Sdebug?[2]�M +��vRStart�w� ��0x�Bfailw�s� &�n�#Kelseo�if callPresB and�B 4���h?��<loc�� L�X$P6may@ or �9>= ��N�q))N1ostC #, (�6) <�AretT" ==Results(.�F".r�Name, asList=QsaveA�r, modal� �K�}&w(&or Du*KTry)21if Kging��XMfor fn ine��G���K���99= fS�&, I��E���#ifW is not Non �(��Y�7� �I�% istRance(.!,(,list)),z�%gr on as err:  ��#~ print "Exception raised in user parse ac�:", err K�� if (self.debugA1�s[2] ):1��E�1� ( instring, tokensStart, -��/ )R�� �Oelse��`for fn��U�.��-�����_ = fn�AretT��#if� is not Non��q���Q�0= PResults(G�,��3���rI�ONameE�"qasList=L�QsaveA�p and isRance(5(,(�,list))v�"Rmodalu� ��o 1if Kging("Matched",�e,"->",n.�+()g1�X� /1]:4loc� �qreturn )�#�" �qdef tryg('�D9loc;try]��_ �t�"dos=False )[0]}��re>UFatalO j��](�#� l��berrmsgp���1can�ANextu,48locs�`�0 )j���, IndexErrorf��2�G!����)�DTrue class _UnboundedCache(objecth���__init__���o�c9�V = {}����tnot_in_$� �n�$()��7����t�$gei<keyt��%��[�..�@key,q�X�sX�, value_�X�r[key] =&��_clear��D�.$� �  get = types.MethodType(ge~�Q�4�s4�s4� �j���if _OrderedDict<AFFifo<ct):  � def __init__(self, size): ����.not_in_cache = �object() ?�3�_OrderedDi*���3get�?key���qreturn Z�.2�Ikey,���`�s`�o, valu��g�`�r[key] =*���(�qif len(/�1) >IH��+���(�.popitem(False�Qclear N�(�G� get = types.MethodType(get, !�)���/.s8�s8� �r��t�v�Gelse0class _FifoCo(^ �["{}���key_fifo = collections.deque([]V����h/, (+�left(), NonN�/�`append?��HV'i� �q�N�m���rMs# argument  for optimizing repeated calls when backtrack!� through recursive expressupackrat{} # this is 3later by enabledP1�5();'�here so that reset) doesn't failp��_lock = RLocks� ��_stats = [0, 0]}�mU gets !ly`ed dur with the same_2s -�s# we ca�)�s&�and save ourselves#� trouble of re-parsx��f�containedyj��_+�e,`, inst�, loc, doA=True, callPreParse=True ): �HIT, MISS = 0, 1�(lookup = (self, instring, loc, callPreParse, doActions)A�Qwith � rElement.packrat_cache_lock����/ =7� a��1�value = 9�R.get(���'�2if *�#is+�bnot_in� ��1�� `stats[5H] +=4�:���?tryT����� = T0._p>0NoC(aS l ��T�bexcept4QBaseE�ion as pe�# � a copy of the L�Pion, 1out�traceback~�~���~s~ , pe.__class__(*pe.args)���?�^raiseZ�?els�q�(ZB[0],@[1].�/()v�Return.� }�y�?HITPif isBance�%, ����!�r�M��" �i2 = �r�@icmethod1�def reset�w.clear(-�_v�s[:] = [0] * len(1�)�_MEnabled = FalG�e,�P(E�_size_limit=128�2"""]�3s "m� " which adds memoizing to/%�r logic.S� RepeatedI�e attempts aiRsame i�haU" (l�yhappensO�!often in many complex grammars) can immediately 4ad[,S��0eadre-execut��q/valida�code. M�is done ofS�@bothk� idV ul�n�Z�us, D�Parameters-� - (default=C{128}) - if `nteger�ue is provide will �'��% x�;Y�N��M�`assed,2�n� �2� L�`�be unboundedI�0�F�2��-� P�be effectiv1dis  C Thi,s speedup may break existing programs that use parse action�6 �have side-effects. For this reason, packratL��f�is disabled whenR�you first import py�ing. To�pvate th�Z�feature, yourO�� must call8�class method C{P�rElement.en�P�()}. IfU��f�,�& s C{psyco} to "compile as�A go"�� M�)C{q�} before��.[�T.full�X�do not don,U�Python will crashbest results,c� ��()} immediatelyV�Safter�� '� �Example::��B  !�_� 8�6""" �!if ;�_Ed�,� v = Truea�� f cache_size_limit is None\��.� `��_A�: = �_UnboundedCa�*()y�?elsb�.BFifo]��� m� ��e��P�" �1defeString( self, ins��rseAll=False )4 UExecu�expressi!thbgiven \�.��vTie main interface�G�client code, on�0he 7letu��has been built.��p�!IfBwant�`rammarm�`requira�0ent�Sinput�' br�psuccessyK d,U�Pn setv�1Ally� (c�0val�to ending �����with C{L{End()}})�TNote:i�(�� plicitlyC�expandtabsA on� �sin orderoper column numbers in�7ons-Ifb�p contaiabs and�JusesX��C{loc} argu�Pindex8�l1 be�dcan ensure 'a�@sistgview o��7 by! -j�g�!C{iWithTabs} ond�$r @arseString} & � (see L{I{parseWithTabs}<�F>}) 5�- define your )�& action using the full C{(s,loc,toks)} signature, andS� reference>�input strO�U�l�'s C{s} argumentN�- explictly �1andU�rtabs in� b�before callingJ�2 CS�}� �Example::��_Word('a').�A�0('a�baaa') # -> [�/']@�,{All=TrueO�PExcep: Expected end of tex'6"""r�P@rEleK.resetCache(if not self.streamlined� �A��##~A�aveAsList = ��Pfor eK�ignoreExprsj�e�g��@keep ;�#in\$= �p.expand%M�;try<�� tokens =�_(L�G, 0 9��%if P���4locL�1preN��� P��6��se = Empty() + c8End��(���>se.� X�e; �EBaseK{ as exc�"if+�7verbose_stacktrace2���Vraise��?els*�p# catch+A re-9��� from heMclears out py�7internal � � x��|�V����creturn" ,�def scanx( ,@maxM� es=_MAX_INT, overlap=False )! AScan `xpressnm^�. Each �d will �hj��,prt loca/*�. May bed with o]"al�C&C{�, to clip$ny�after 'n'�es are found. IfS�(�} is specified,nDpT��"es�be reported.��0NotX at@������?� relative��0� be~��le�SFD �0>} mgainformu1 on vk���th embedded  �xPsourc "sldjf123lsdjjkf345sldkjf8�79lkjsfd987" �print(source)� for tokens,start,end in Word(alphas).scanStringE�:F��l�e�A' '*I� + '^'*(end-�)z�4��7[0].�l�d�'s:~���P� sldjf123lsdjjkf345sldkjf8 2�^� �E� ��\����-�?^^^�u���>��D�&� �&� R�? U�/�)^�'""2if not self.streamlinedu�H� �(�TeE$�ignoreExprsC�e_��@���|keepTab=�1ins = _ustr(�).expandtabsV����� �len = len/�v�vloc = 0�preparseF5��@preP�$���!�_1��.�rElement.resetCache�zmatches|�;try/`while �5<= �Dand A�b< maxMN� =��S�����0preX�&= �(c�Aing,t��2��nextLoc,1 = �(Fn?�^�s, callPA=False V��qexcept 9E �?ion�����Vloc+1v����Oelse;��c� >�'��F�_?+= d���"���TyieldL�ISloc, ��3���if overlap��)��J��f���O��;����*�� 3��,�=��/�m����R�J I��E�� F� B�;EBase{ as exc"ifverbose_stacktracZraise�0# c 1re-9���eption from here, clears out pyparsing internal stack trace �raise exc �0def,�nsformString( self, ins�2 ):,��L�6""" �Extension to C{L{scanE�0}},�modify match�text with �ied tokens that may^�be returned from a �e action. To use C{tra�}, define a grammar and[�kattachQ���#it��� ie�e��f list.L�PInvok� �()} on a target Owill then /B for 6es,V�and replace,�"�!d A0pats accord}�!to'�logic in �.S�7�rk�AsultW�Y#ed��[�Example:)�-wd = Word(alphas)2��.setParseA�p(lambda!s:�[0].title()=� K�print(wd. r("now i�w$ of our discontenw de glorious summer by thi�n3�hyork."�Pt�s�Now Is The Wp�Of Our Dp�dMade Gp�Sp�@By Tp�Sun Of Yp�� x�F= []�lastE = 0�#Zce preserva4��b<TAB>sinimize unwant/�,@8 to_�CkeepP locs �aight betweenYD��#L��p.O�Tabs = Tru;tryX�3Pt,s,e=�V�(�p��out.append)�[>K:s] d�1�Kif t�����Pif is&qance(t, Re<s4�,���+= t.asList(v���/�,ela��zY�Z�H��Oelse��#�t��$7 =  6�� �@O]E���@= [o o��Gif o�S� "".join(map(_ustr,_flhn(out)qexcept QBaseE�� as �"if+�rElement.verbose_;: 2���; ZR0# c5re-t!ephere, c  raise exc � def searchString( self, ins� , maxMatches=_MAX_INT ):>��B�6""" �Another extension to C{L{scanb� }}, simplifying the access,���tokens found[�@to m�1�given par�@presm�. May be called with optionalK�&C{�} argument,�Cclip��after 'n'|�bes are�.P� �Example: �$# a capitaliz�ord starts�an uppercase letter, followed by zero or more �+�s��n�Pcap_wb�= Word(alphas.a�C(), �F�:())=� �dprint(Q�.* "M�than Iron,��HLead� Gold I need Electricity"}�k�s: ['f�@', 'd����\����T���6I']� ;tryreturn P8 Results([ t for t,s,e in.( G ) ]:bexceptY�QBaseE��� aso �"if+�@rEle{.verbose_stacktrace2�����?els*�1# c+qand re-9���e  from here, clears out pyP�internal1ck � x��|�V� L_plit(D�s�B�acludeSeparators=FalseZAGene)�p methodT�2 a 0 us��B$ex0 as'�l�0 'd� %Qlimitnumber of (�&s;'�|��[ C{in�X� (default=C{ a}), ife�s�6ing^� �ext shouldc�d�~��" r�J������� punc = oneOf(list(".,;:/-!?,�.%��7�.}�("This, this?� sentence, is badly 1�tuated!")�V���Y�� ��� �_��b����6�Vs = 0 Jlast�2 =1max[��5@yiel[k�':s�$�3if 0!�K�5t[0?� last =S e �yield instring[last:] !� def __add__(self, other ): ��D�6""" �*Implementation of + operator - returns C{L{And}}. Adding �s to a ParserEJ�]�converts them*�L{Literal}s by default.2� �0Exa�:��� greet = Word(alphas) + "," +�!��=�hello = "H �,0�,ld%�qprint (,�, "->", v� .p�Sw�&))�P7�s� i�a -> ['�P', ',�PWorld �6!']M� Pif isRance(b, base ��=2._l{�SClassM� �oif notq�  t�warnings. �P("CanG�combine e�_type %s with�@" % �(�&),���rSyntaxWo�, stacklevel=2��.�G Non>�xAnd( [ #]t�FrG5when leftZQnd isfaX Y"}}���Oi! + B:subBA-Ntor,@error stopY `And._EdStop())   M   """ # �if isinstance( other, basestring ): -��4�"� = ParserElement._literalS5�SClassM�& )@�oif notq� N� t�warnings. �P("CanG�combine e� of type %s with�1" %�(�&),����rSyntaxWo�, stacklevel=2��.�return NoneK��c� - self �def __mul__(�,%�]2"""+��_�2Imp�Pation�* operator, allows use�C{expr * 3} in plac�M�!�!+ (��&}. Expressions may also me multiplied by a 2-integerS�tuple, similar to C{{min,max}}B� rs�@regu'���eq�@. TD�sT��include C{_0} aE�"- �@*(n,#�W)} or�)} is equivalentd��\ ���*n + L{ZeroOrMore}(�,)}2�P(read�"at least n 7s(}"(���,,n�� (0�w�0,�s��x�v�� �1c S��|C{L{One:�Note that����Q does raise an excep&ifC�1morC� n "�prs existVthe input stream;k�'is(x� enforce a maximum number��occurrences. If this behaviorjdesired, then writ �@ + ~`�c  &H,int*�3min|ds, opt �# =0�/elU� W�p�2 = 'A + (:f))[:2]W���"ifo�0[0] �-��#�" #��V�"0, �8[1](? ��1[0]�E and7�f��O== 0���� ��)� P�1P�  O�OelseC� �*�O/+ �  4other[1],int):  �minElements, opt � = other 1� %�7-= A� ,�Zelse:��K�raise TypeError("cannot multiply 'Parser�' and ('%s',�) objects", type(�W[0]),�F1])){����"����m�o�(ifK < 0}�OValu  by negative v6�"�)ifn�second tuplQ� must be greater or equal to first.� �9 ==�/==�10�P(0,0)z� i()gdef makeOptionalList(n&��kif n>1?�����treturn F�(self +Z�� -1�3��}��Z��'� L�� !���? = �Hb����� = And([\�']*)(j�f�^ret =pH�D��#f��� �Q���/��B�Rret ��__rmul__L,i6���2.__+�)F�*orD� E�2"""r���2Impa  of | operator - q�s C{L{MatchF&}}A� N�if isinstance(�, basestring����9 = ._literalS5�SClassM� �/otq� N� t�warnings. �2("Cgcombine e� �8 %s with�7" %e&),���rSyntaxWo�, stacklevel=2��.�gV NoneK��w1( [ ]0�=mentation of | operator when left�nd is not a C{L{ParserElement}} �6""" �if isinstance( other, basestring ):-��A�"�9 = _�._literalS5�SClassM�& )@�!if�q�� N� t�warnings. �P("Can�combine e� of type %s with�1" %�(�&),����rSyntaxWo�, stacklevel=2��.�return NoneK��c� | self �def __xor__(�,k � 2Imp�Pation�^�"- k�s/Or[QOr( []r5^ ?and'&OEach[�q5 {L{ParserElement}} �6""" �if isinstance( other, basestring ):-��A�"� = ParserEle_�._literalS5�SClassM�& )@�oif notq� N� t�warnings. �P("CanG�combine e� of type %s with�1" %�(�&),����rSyntaxWo�, stacklevel=2��.�return NoneK��c� & self ��def __invert__(� � 2Imp�Pation�~ operator - h�s C{L{NotAny+� &�w� �pcall__(�p, name=� �Shortcut for�setResultsName}}, C{listAllMatches=False}.�D �PIf C{{�} is givenE�pa trailC{'*'} charact\then g�} will bpassed a19Tru�? �omitted, same>��)�pL{copy}�>�0Exa:1# these are equivalent7��  userdata = Word(alphas).[ ("#B") +&�nums+"-"(�socsecno"h�Y�&("J����� ��-!is�H �m ����Oelse=��(()`supprey�^�]S(� esp outputd0thi#  }; useful to keep punctuFfrom aclutte6#up#eda� 3�leaveWhitespa� cDisabl�PskippEof wC� before m��6theZ@s in�*C{'s defined pa�Pn. T?rmally only>d intern�&byW��v�`pypars� module, but may be neede?�W some�-sensitive grammarsa�-.B1 = ��,� S&et6�RChars,-sdsOverridwdefault�@�� ����1�$��* =R� self.copyD efaultWhiteChars = False �return self �def parseWithTabs(�2 ): ��:�6""" �Overrides dq� behavior to expand C{<TAB>}s�spaces beforem�ing the input string.c�Must be called9�!C{�S.�g} whenE�grammar contains elements that\�Umatch� characters� ��-P.keepo = TruRbignoreK, otherR`Define;pression52be E�d (e.g., com�) while doG{pattern�ing; mayFrepeatedly,`�du�multiple^�2 or�Q��0abll�+'�Example:8�<�� = OneOrMWord(alphas))?�,�.('ablaj /*�*/ lskjd') # -> [#�*']J� ���.�e(cStyleCL�72, '�� Gif isinstance(b, baseo� !�p = Supp2�)�#� R�,1� o/�U�Rnot i[Exprs�3�8#�u.append��$���Kelse?�;��(�.copy() ) setDebugActionr, start�, success�Pexcep.��  !Endisplay of dk�gcmessagesx P  Y� L���(��q_JS��,�k � � I�K� )4or �EDO��Pflag=WS`Set C{u�} y��,3��0dis.tXwd = .setName("Wword"4�tinteger9�Vnums)7�?num5�term = wd | A�er ` �� # turn on debugging for wd(�pwd.setD$�J() �OneOrMore(term).parseString("abc 123 xyz 890")<� �prints::��� Match alphaword at loc 0(1,1G�+�'ed-�-> ['abc']U�[3(1,4U�Exception raised:Expectg� (at char 4), (line:1, col:5N��_7(1,8+� g��?xyz� 11$2W��,12�+13P�� 15}�6-�}�5}��P�!The output shown is that produced by the default0 acs - custom�fcan bef�specified us$L{AI�}. Prior to attemptingA�Ato m��C{wd} expression,�xmessage C{"Z<,�Tname>P<n>(<e>,<col>)"}m�"is . Then if`� succeeds, a`�Ted"} u�=�p, or an%� l� 7�. Also notev�quse of 1QName}"ssign a human-readable �� ��%���which makesUand e�qs easiepunderst(�- in�$cezg��@crea���YC{Wor without callC� is:W:(ABCD...)"}.a�6""" �{if flagEselfkf3( _BStar�,��!ss �� Oelse�w = Fals!re4�� def __str__( �' )Q�1�.d 6�?rep7� `_ustr(U�y�o�`stream r���.�."�wd = Tru�!�Repr = Non���checkRecurv�!, `ElementList�HpassC�validate=��Trace=[]=� .C}��0ineEsH� structure, ��infinite recursive definitions. �6""" �self.checkRec7�on( [] ) %��def parseFile( 0�, file_or_�Rname,#�All=False ):>��s� p�Execute the4� expression on�Qgivend�1 or��d��EIf a� is specified (instead o$� object),��}�aentireF��B�opened, read, and closed befor�7ing� �7try����_contents =i�3.j�&()�except AttributeErrorU�Pwith �(_� "r") as f4�� ~��areturn.bStringz���P6QBaseE��kas exc�1if +� rElement.verbose_stacktrace2���Vraise>��?els*�q# catch1re-9��� ep from here, clears out py�ing internal � � x��|�V�8q__eq__(4XotherPif isQance(�, .�d��R��"Avarse�Q) == �O�lo�Qbasesl� .m?"es� U� p5Yuper(,1)==� %/ne%P�Anot ���B� c__hashE��?���1(idB�):�r?���y� �r�.]�e�b, testhZX=True� zMethod for quickC���`er agaj! a� C. Go:�vsimple inline micro�sP7subs while buildq�up largerr,' \�Parameters-��Q - to��0thi<+��!a =�" -{�All - (default=C{B}) - flag\�@pass�AC{L{$y�}} when runn��`� �0Exa6:�! " = Word(nums1�aassert&�YW"100"(� �+ _ustr(testString), parseAll= �G) �return True�except P<�QBaseE�Fion:$��D�=�GFals>�����,�def runTests(self, t ���}� , comment='#', fullDump=�printResults�qfailureX�=�)�2"""���Execute the expression on a series of� strings, showing eachP���,N�2d r� or wherj��� ed. Quick and easy way toS� ru��against a list�dsample�.B�6 �Parameters! -�8s -P�Pepara4estW�,�a multilino�����'�p�" -YAll - (default=C{}) - flag to pass�AC{L{�Sl }}:n*nq�g�s� k�* j�1'#'i�for indicatT�embeddedjAs in�m�=s�;�@None�tdisableB�` filte, � � Edump3"asfollowed by�Aname�nested out;m��1if q, only `�3��7/�(- J�!�s*�q�0put�istdoutJ�� J��$})|��fi!seW�Ps are ec�0to K�AVing f�Rs: a (success,) tuple,83re �t�that allt�!�Feded_�1(or{�ed if C{��A} is!),�<`contai�_��?�)K�Z#'sHy� �!Ex: number_P = py*@ing_2on.�x.copy()1��( =E�.6'''~��/���# unsign nnteger$�>100�# negative i9�-:�float with scientific notationl�~6.02e23�#|�M�^1e-12K�;''' 2("S~")a[0] else "Failed!"3stray charactZ�# missing leading digi�t before '.' �^-.100�# too many7�3.14.159:�''', failureTests=True))�print("Success" if result[0] else "Failed!":�6�:s::L�# unsigned integer � �z[100] &�# negativeF�-G���H��float with scientific notationv�z6.02e23�[�?+23]���_�[1e-12]�� Z� ,� ��# stray charactg�Z1�J ^�FAIL: Expected end of text (atZ� 3), (line:1, col:4)missing lead�Odigi�� {real numberk8 | '�*| }�0�1��pl� _4�5� Each test�q0musp` on a 0le . If you want to5�a7�that spans multiplee��@�s, create a;�like thi,��expr.runf0(r"%�3 is9�0\\n\strings y���3�s]\�@(Nott�!aty�T�4raw�literal,� `includ4�eG'r'.6"""b�if isinstance(Xrs, base�)!� = list(map(str.+�!p,%1s.r�().splitI7())� r�commentt� #�B = L�(�U�AallRfs = []�+� �s0 = /�for t in� �3if O��not None and�.matches(t, False) or�s*��7�tY��CZ�s.append(t�� ���wcontinu�� if U�1�0out&'\n'.joinPWs), t<�]���1� �?try���[� t.replace(r'\n','\n')  �result = self.parseString(t, �DAll= �:) ?� out.append(L�.dump(full=�_Dump)8��psuccessz� �and not failureTestsp�except P�QBaseE�ion as pe:.���fatal = "(FATAL)" if isinstance(pe,O�F)�P�) else ""R�if '\n' in tq���u�0line�.loc, t 1�' '*(col(pe5�t)-1) + '^' + �M�����\�W�Q��"FAIL: " + str(pe���/Z = peg�?exc�� �-EXCEPTION�?exc�>Zexc �if printRQs��4if ����/''�a�(.join(ouS �3all��m 6�sreturn &, B�� class Token(rElement)�"1Abstract C{)�Q} subG� , for defining atomic match�patterns.�Y�def __init__( }��Aasuper(�,').-�avelist=Fa)��REmpty8�O�s�@An e� t�, will always��"r� ���P.name-��AmayR�g = TruI$�IndexError = ��0NoMs��R that�_never�(p��/��8�&��`errmsgb!Un{Bable�"&�)��rBImpls , @�%!, doActions= Rraisec(?��, Literal to exactly a specified string. � Example:: ��� Literal('blah').parseString� # -> [#�]<�2fooW�C�&#');�Exception: Expected "]�"��For case-insensitive matching, use L{Caseless�"}.<���B�ukeyword9� (force � break before and after thi�Aed s?"),R�u�KT�G} or���#""�def __init__( self,�' )csuper(�,,�%).<�)����. ( =M�"�Len = len(1�v�L�7try�^�`firstMoJCharg�'[0:e IndexErrorN�warnings. �c("nullV passed to �;Empty() instead"}���rSyntaxWg�, stacklevel=2��:�7__class__ = j� 5name = '"%s"' % _ustr(;�AT��errmsg = "! +.L� _�mayReturn|� = False%�P$�&�# Performance tu^: this routine gets called a *lot*<�"if+�is a single charac��   &�#es # short-circuit as quickly �possible,N�Qavoid�0ingsrtswith�~ @profil�<DImpl=��, loc, doAcMis=TrueODif (.�[loc] ==�2and��&��`Len==1K�C.sta�(�i,loc))��J�r��+/bBLen,��|�praise P&(x��G�vE�t) _L =E! @�rElement._lC-�!  d(Token��rexactlyv�Cepecifi+�#a w, that is, it must bimmediately followed by a non-@�t. Compare 0S C{L{5$}}r-��("if")} will��@leadzC{'if'} in �AndOnlyIf'C M�M�@not;�Z�%on _� p x=1'},Eo�(y==2)'} Acqs two oal constructor arguments in addition to the keyword string: �- C{identChars} is a#� of characters that would be valid :�Wifier*�,[��_� defaulting�all alphanumerics + "_" and "$"9���caseless} allows �-insensitive matching,d���C{False}.K�" �Example:�B K("start").parseS� # -> ['%�"']N���?�Sing")B�PExcep" D�?For� suse L{Cm��#""+DEFAULT_KEYWORD_CHARS =d@s+"_Ws�def __init__( self,F�, a=None,��=V' )?csuper(�,M�%).]�)q��('ifW���Z�H�$�$ =.�X��r�.( =�"�Len = len(1���;try�^�`firstMg� g�'[0 e IndexErrorN�warnings. �d("nulld`passedK ; Empty() instead"T�3 �rSyntaxWg�, stacklevel=2���name = '"%s"' %H :errmsg = "Expected " +0��E� /�mayReturn�1 = 3%�%$���t% =F�%if� d�<� 0.up�C�7s =-�_� .�Fset(�)�eJDImplf��v, loc, doAc is=TrueW"ifb� �dif ( (O�[O�Q:loc+���]�: ==O�#�)pT��b(loc >)c�*)-[�!or��[y�x�bnot in|�%y� [== 0 _�/-1S��A r� ,�Oelseh���]J 6andI��(48==1�.KWswith(�_,loc)ing[loc+self.matchLen] not in self.identChars) and � (loc == 0 or instring[loc-1J�.):I�return loc+z��,��6�raise ParseException(�,F�8�berrmsg �2) B�def copy(j��c = super(Keyword,"�.-�)=��c3 = -�.DEFAULT_KEYWORD_CHARS6��c�@staticmetho[��setDefaultX�0( c �"""Overrides the d8��3��6""" �]��$ =<� class CaselessLiteral(��[�Token to  a specified `, igno' case of letters.�QNote:�C� ed results will always be��F�� �RgivenG�=�t�1NOTS�-�input text.Example:OneOrMore("CMD")).pS("cmd CMD Cmd10") # -> ['CMD', �]��O �(Contrast with e� for L{C#}.x�:__init__(4,� 8S�D�A>�0.up#) v���# PreserveYdefining l!�*��D.O�( =��)��name = "'%s'" %� >� 0��2�Expected " +7��L��!DImpl"i3@doAcKis=True4&if�`:% ]'"==�CL�� �C��(�' ?  version#L{6�}'6�('$ # &, J=Non 1�1 O�,�<V7%( [R���match) and  �(loc >= len(instring)-self.matchLen or �Y[loc+�].upper() not in �identChars) ): r� return J�,;�w�2�raise ParseExceptio�,F�8�berrmsg �) class CloseM�d(Token�2"""e�pA variaX� on L{Literal} which �Pes "cJ�"�, that is, H�<s with at most 'n' misD�ing characters. C{�} takes parame �5A- C{?�_a�B} - �c to be�d� /�#xMt� es0�(C{default=1}) maximum number of�es allowed]�count as ae�c��The results from a successful�se will contain th�R text6���Tinput�1and+� fo��3Tnamedl�  �`a list��T�@posi�Gh where�w�HfounK`origin -��L�$us1mpare aga12��;� If�is an empty��ae8 wrn exact�.K��Example:# patt ="ATCATCGAATGGA");���,� .pgS(+�X+� # -> (['C���d'], {'es': [[9]], ',��5��x�?']}z�X��b�"")z�: Expected W�! (} up1Q) (at} 0), (line:1, col:1-���#`�����{�!# y��2�3�� ,$/=2��?4, def __init__(O��3tcho��$=1� suY,@�%).O����.^" =]`�H"�}*� �+�� V�E = ")%r'%dQ)" % �7.mai� �mayIndexError = Faclse � self.mayReturnEmpty = Fa%�'��def parseImpl( 2�, instring, loc, doActions=True ):;��e�pstart =(��?�0len�1en(�Fing)"�maxloc = @�`+ len(|�r.match_�6) 3�3if 6�"<=�7len���=��]��Q�N� .��0!�!isR�{es = []�8axM �����p�Afor P���\s_m in enumerate(zip1R[loc:�!], �a���`src,ma:s_m���if src !=� >� ���m�.append(��0��!if?�0) >'q��A�Zbreak�Oelse2�� �J + 1>��U�`resultPR�$([[o:loc]]��?�['original']Vx�&[' ;�����I#, y�Aaraise �PExcep)berrmsg/A class Word(Token82"""�� ing words composed of allowed character sets.B�Defined with  containN�5all@�vinitialH�"s,D�Aan o�/alC��Gbody<� (if omittedH�Adefa}to the q���x), and t�sminimumF�1max��'�/or exactgth. The i�a value?C{min} is 1 (a�W�&�0< 1�0not�Aid);� K�sL�0ax}�1 C{~�}Q�are 0, mea\ noe�� ��H1tri6. A_H��V�cludeChars}0amecan lisththat might b�0undK�g`put C{R� ; useful to3Qine a`V printablesN�e0one�7two�,��Cance;�L{srangew��d�fcustomM�� nw*�Q� C{8} express@, usK�i�P nota from regula./� k�0]�Aamon mistake to/ x�ttch a specific liter%, as in C{Word("Address")}. Remember that "�D} uses the string argument to define I{sets} of matchable characters. This expp�ion would,� �", "AAA",P� "dAred", or any other wor4�Pde upk���e� 'A', 'd�r�e', and 's'.W�#Tos�an exact literal�,�B L{L�}�PL{Keyz�B}. G�`pypars�includes helperG�s for build%��m"s:;� - L{alphas}�9num�"� �<hex�(�s8bit} ( �gbetic in ASCII range 128-255 - accented, tild�Qumlau�Wetc.)�Cpuncf�Onon-j�currency, symbols, superscripts, diacritica� }�@rintRs�0ny �whitespach)Example:ub # a@composedAcdigits� integer = (n) # equival�"0123456789")'�sdt("0-9")@6 b��with a lea$rcapital@zeroT�more lowercasj�n-�_�s.upper(), �>�(��hostnames are+�numeric, ��F��6'-'C�A� ~�v��7O+'-'aroman p�al (not a90ct X1er,�pts invalid mix\�P�"IVXLCDM"!��#M/ofIs, except'',�csv_value�p5��Chars=",�2"""�def __init__( self, �1�a, body �=None, min=1, max=0]�0act �#as`=False�;�' )k(,r�%).�$ if��?��q� = ''.join(cFc in�` if c ia�j�P�f� k���o��o���.�fOrig =��t� (�u = set(8��i� �E��m��m�q��q��q�Oelseh��h�dyChars = set(initChars) � self.maxSpecified = max > 0'�if min < 1:<��C� raise ValueError("cannot sQ�0y a9�imum lengthD�; use Optional(Word()) if zero-)�word is permitted"��PinLen�,in�� ��6�&ax�Oelse.� _MAX_INTi�Pexact1=� &�m��<��!�#��name = _ustr(�)!�errmsg = "Expected " + +�.=� /�mayIndex = False$�QasKey~%= � �@' ' "ink�^QOrig+~�Abodyq�� and (min==1 �amax==0 ��K==0)A"if\� I�"==� r� :�^qreStrin  [%s]+" % _escapeRegexRange�^.V�l�R�@elif*�= ==�4� � %s�*�\x�+��B(re.�{�,G�� d-),� �� ������� �Pv\Rr"\b"+� ?tryM� = re.compile(M� qxcept E�?ionV� DNonedef parseImple�Q, ins%, loc, doAcxs=True r)sresult re.match(Z�;loc�!if@9���YP��P��,1 !�1locX��[.end(�breturnN��`.group(��~�[0�= ] +�~��/@starW6loc���F+= 1�hl 4len�g) bodychars = self.�C�3 �`maxloc!�btart +)�omaxLen&��Rmin( 4�, instrlen )*�`while S�<(�B and+�ing[loc] in ��:<����:�f+= 1 �throwException = False �!ifq�1- s�<�[inLen_� K�:TruJ�)maxSpecified���<����t�asKeyword�Aif (�!>0�v�K�*-1O) or (loc<(��)o��� r $� E�raise Parse(�@ing,,berrmsg �)breturn*�9�[�:C+�def __str__(R� �<try�W�super(Word,$).D�eq � J�@pass� �M�.strRepr is None:&��V���xAsStr(s�$��{en(s)>4x�"�!s[:4]+"..."�$�0els���?� ��nIQ.init-lOrig !C�� = "W:(%s,%s)" % ( �� g�-), ��)�)k������ "���� class Regex(Token#""� for matching strings that� a given regular expression.Defined withA�! syS�?the<���]a|�m recognized by /�inbuilt Pythoz�s moduleq�!If&�� ex contains named groups (d� us�`C{(?P<"�>...)}),H�se will be �0ervM"s ��.�0d p# results.`�Example:realnum =yr"[+-]?\d+\.\d*"Fdate(�'�year>\d{4})-�month>\d\d?�3day�'J�# ref: http://stackoverflow.com/quess/267399/how-do-you- -only-valid-roman-numerals-3-a--�2��""M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})") """ �compiledREtype = �C(re.�("[A-Z]")9�def __init__( self, pattern, flags=0):\�i�The parameters C{0�} and C{6�@} ar'�ssed to the C{�)} function as-is. See(�aPython/�} module for an explana6�!of.�acceptablo��s��.��super(Regex,�%).�6) �if isinstance(�, basestring�Y�dif not9/����warnings. �r("null K�4 pa$�; use Empty() �Vead",��O��rSyntaxWa�, stacklevel=2��4���.�$ =� \�$�=" =�F�?try��8�rs�q�,_.[�~�N��+�1reSa" =-�;� � exq sre_cots.error���qztinvalid�\ (%s)4" % �,z��t &��XraiseE/elb l( 7J = \�=�e$tr *����X�Kelsey�p ValueE!("� may only be ructed with a� d RE objectv��0namq`_ustr(�����msg = "Expel�2" +\�=� P�mayIndex�` = Fal����S�mayReturne = Tru�OparseImplP��6, loc, doA s=:� dresultre.match(A�7loc�v5�P�E/6ionH���berrmsg 0bloc = ]�W.end(z�d�groupdict � re�~�R�#s(I�/�(~�UKif d��Mk in��0�ret[k] = d[k]r�4retn�T__str oF�)E�_ �����"ifwstrRepr is Non:#�`= "Re:�repr(self.pattern) �return self.strRepr� class QuotedString(Token):=�Br""" ��� for matching s1� s that are delimited by quot&�characters.J��Defined with the follow2�`parame2����-Q�seChar -{� of one �Fore k� d_��M��[��������]�3esc[�E� to escape{�s, typically backslash (default=C{None})W�]��bpecialL� sequencee�an embedded%�a (such as SQL's ""5�/")� multiline - boolean indicarwhether|�s can span 7�@ple ;�sc�KFals�!unmResultsi� �Med text should be G�dn�;Trum�1end^0end+����I�  => same3��x� convertWhitespaceE@��R5d w$� (C{'\t'}, �n �Petc.)iactual.�prExample:5Jqs =7'"'��print(qs.search'lsjdf "This i" sldjf')C� cou�/x_k��X{{', N='}}�B��({{�"y?"}}��?sql�"�!sc*?='"�9�~�$""#""2 ]s8[['��2']]� !��#� D����8�def __init__(,,��,� �Q=None�4��=,= 9� 2�i��asuper(t�,%).� # remove�rce from��zwont work anywayo=��" =4�� ��!7ip(fif not"�a��warnings. �(�I��B�8�!beSempty",SyntaxW;�,stacklevel=2y��^�braise /�PError��$ifbeChar is NonWe: �endQuoteChar = q �&�?els5� D�.strip()@��m�xif not )� ��&�warnings. �((".�@ canB�be the empty k�ng",SyntaxW>�,stacklevel=2��e�braise 3�PError��Uself. $�Len = len(7�w�,�_firstg;[0]|� �=3*��@� �3esc � R�!sc�C = e � "�!un�Results = � .�convertWhitespaceEscape8��& D�if multilinW0lagL� re.MULTILINE | re.DOTALLJ��3�`patterr'%s(?:[^%s%s]' % \0��4�(M�e�(@���D.),.�2 _,�RegexRangWs;�?[0]A�(1 is2None andZ�/�) or '') ��f60��O\n\r#!if�[) > 1%� J+= (?�.'|(?:' + ') �.join("%se]" % (re.#�/:i�\��s7i])P� for i in r(� #-1,0,-1))�'m�%ifPV rE0%s).�V��U�.V��?�U���,ReplaceP8 '�v)+"(.)"D�/jr')*%s�%� V)�?try�@re =rcompileJk�!, T� self.r eString = self.pattern � except sre_constants.error:%��,�warnings. �("invalid Q� (%s) passed to Regex" %v�,R��V�rSyntaxW\��, stacklevel=2).�vraise ��name = _ustr(�6����� ms�"Expected " +��=� P�mayIndexE` = Falv�����S�mayReturnEmpty = Tru�def parseImpl(h�Q, ins, loc, doActions=:�' )jresult =3�s[loc] =firstQuoteChar andb�.re.match(j�loc) or None�rif not f�w���a P�E6ionP���qerrmsg,z�)Sloc =]�W.end( re�y�`.group� �]�0unq�R(s:_��� # Jap off )�sC�� �g�!t[N�#��+QLen:-�5endALLen]b�Pif isGance(ret,basev�(ng�n��� # replace escaped whitespacy�*���if '\\' in �convertW;�EM���7� �ws_map = {�(�r'\t' : �z�+�Br'\n'�/n''� f'�f'� r'�r'�}�for wslit,wsc2in �.items(}�^#t.(K� L� 4��w�[acterU�2�!if@.escP <�"�����A.sub0�R$P,"\g<1>",ret�� � ! !sc6����� �r4ret4�r__str__ ;try�G�asuper(j�d,�$).L�8E R��r��strRepr is 6��n�.#�1= "]d[n@tart5with %s end��8��-@x��� class C�sNotIn(Token2"""-� #�ords compot5of s I{not} in >a given set (will include whitespace in matched characters if not listed$�the provided exclusio`��- see example).j� Defined with string contain �all disallowz�, and an optiona�minimum, max �`and/orw�!ct length. The default value for C{min} is 1 (a�R�&�0< 1���valid); � K�sL�1ax}�C{exact}Q�are 0, mea�$no� �0 rec�2. >�E?"::��#�ine a comma-separated-�as anythQDthat�Va ','H�Bcsv_1�= CharsNotIn(',')%�print(delimitedList(9�).parseS("dkls,lsdkjf,s12 34,@!#,213")S�O�s� ['7�B', ':�� �=�� �0@!#�R213']�2""" �def __init__( self, not�q, min=12=0,G=0 )Gasuper(/��,C�%).S���r��f.skipW r= False�%��% =��$� if�G < 1���praise VError("canvspecify a9���D�s; use O�0())Rzero-` grouppermitted")��minLen =q����kax > 0�6�#ax6�&axOelse.� _MAX_INTi�@k�&�m��H��!�#��name = _ustr(� errmsg = "Expected " +c.=� P�mayReturnEmpty = .IL= 0 c�mayIndex LZ��YBImplM�@, inng, loc, doA)is=True%if-�P[loc]��. |PAExceO(o�@�,  8`tart =���loc += 1�0notK1s =C��"�Dmaxl|0( sW�+{�m_,�)VPwhile� <`�F��1\\���% >��c in� �0��H�!ifg�-�" <�Z>rY�q�[:7�2T__str  try:  �return super(CharsNotIn, self).__str__() 0� except E�Fion:��#�fpass �!ifK�.strRepr is None6�pif len(u�A.not�[) > 4(��b�%�O�= "!W:(%s...)" %m�C�F[:4]��=�<els|���T�Q��;4elf���class White(Token)�2"""�Special matching 3�6for�w@�space. Normally, ��IrignoredV�by pyparsR��grammars. Thisb�is included when someT�structuresT�are significant. Define with a strn�pcontain �)thQ�characters to beW��ed; default�C{" \\t\\r\\n"}. Also takes optional C{min},� ax}, and C{exact} arguments,g� asa�Pined \��C{L{Word}}.*�`Strs = {��" " : "<SPC>"^��0\t"�;TAB�n�+LF�r�+CR�f�F.�}�def __init__!, ws=" \t\r\n", min=1, max=0, $=0u��,�P���.*�C = wD�!et�( "".join(cdBc inJ$� if c not�f�') �"#~;�Vleavei�}�name = ({�+�.q��;[c]�p�o�L�AmayREmpty = Tru�errmsg = "Expected " +�����-���U�pinLen =� ifC > 0�2���6�#ax6�"ax��� .�_MAX_INTi�k�&�m��q�^��!�#���baeImpl(B, in, loc, doAc s=J  if(1�[1�/ ] raise ParsewG�x����`tart =p��loc += 1�0max�1= s0�m&��@min(��� Pwhilez�# <-�,�O[loc �����4Coc -�<!.m ?�AarseExceptio n(instring, loc, self.errmsg �c) �breturn*�9�[start:loc]+� class _PositionToken(�"):K�def __init__(s� ��i�jsuper(A�,�%).6�)J�/���Pname=$�1.__�P__.__�+__+�AmayR�Empty = True$�IndexError = False�\� GoToColumn��2"""R�� to advance � specific cE�$ of input text; useful for tabular report scraping.^�g�R,\�/noY��U Rcol =H����m�i�preParse8, iC q� if>�(Z%�A) !=C.col�Y���$�len = le&�f@�ignoreExprsH��&�Cloc i�`_skipI.�lables(�L�5���Pwhile" <)���2and �@ing[.isspace() �@col(4�  � �F+= 1�_ o�lOImplp`, doAci s= Ethis �y�4if +�>]araise PExceps� K, "Text not in expectedBumn"Q 2new��+z�$ -��Vret =�m#: @�]'���P, retKPLineS Matches urrent p is at the beginninga line within�p _��Example:��{0tes�F'''\�1AAA_� ��z� � 4�"bu!�'onB ��=�0def1ely+�0'''@�����(J) + 'AAA' + restOf�).searchS](��I���sprint(t�P�s�&�[\�6, ''����� ']<��' /y��% 'T = "E ���"�5� #�!olFc) == 1B����@7, [% eption(instring, loc, self.errmsg �) class LineEnd(_PositionToken): """ �Matches if current p1� is at the end of a line within�parse stringQ�Z�def __init__(� ~���csuper(�,�%)./�)L�(���setWhitespaceChars( P{�rElement.DEFAULT_WHITE_CHARS.replace("\n","") W�; = "Expected���"M�����BImpl�B, in�@doAcfis=True� ifT<len(5� �b�%ifP�[loc] == ��#��`returnR�1+1,%�,�$�Oelse7�Baise4PExcep���� O�S���"el���� �&[]���r�$Sx_Start3beginning�(� �s��?ext;[ != 0(P# see Tentir up to hereejust w and ignoreables�64!!=�A.pre(9, 0,�5���%�<��� ,  2=*7?End( t&?/<  $���U1c>� 5�}���@OWord�@~�beginning of a @Word, and is not preceded by any character in a given set of C{wordChars} E�@(default=C{printables}). To emulate the C{\b} behavior of regular expressions, T� us0���Start(alphanums)}. C{�} will also match atm�beginning of���0str� be�parsed, or5� a line.=�2""" �def __init__(self, w6 = "):1��gesuper(�,8�%).G�)*�Helf.Q�Eset(� )�errmsg = "Not�s1�^a�2" _����CImpl�"in, loc, doActh=True � if#�W != 0���Dif (H�p[loc-1]7���"or��2��6�]ig�7�praise PPExcep���~� , �;`return�@, []`class End(_PosiU�TToken�MgQes ificurrent p5��T2end�Z�vofollowv�t�?Endr�l/�fC?Endd6skipWhitespace = False���].j ��5�len = len1if XPlen>0�<� !��Ed" pI(�rElement@AbstB sub@�"ofS3�, for combiG0andt-processB t(s* ,s, savelistN j-�E B� sTance(k��_generatorType W): �exprs = list( �6) #��if isinstance( !�, basestring P�Qself.'� = [ ParserElement._literalS<�SClassT�F ) ]v�/elx�collections.IJ�=ble�}� �� # if sequence of �s provided, wrap with L���J�wif all(�u�Q) for/1 in�s*�I��7��~Omap(+,H� � q�Kelse;try���K�r�* )s�except TypeErrorK� [G�k�callPrep$ = False}def __getitem__( 2�9, iareturn�t8[i]A�dappend<�Yother@��T�9�.+�%��$�strRepr = None��x�leaveWhitespa8�E� z�"""Extends C{/�} defined;�k c*, and also invoke;�&on� a contaP��o1ess@6"""*���V.skip����%��C��[ e.copy(��!�  � 1+e.(qcoignore A, Suppress��1if #�E not�d�E" ��3�bsuper(�$�Y,").<�(V���;����&���eM�aZ��r�Xs[-1]��(��T__str C�{1�z�$).O�sE;ionDpass�p4lf.!is 6��n�#�= "%s:(%s)" % 1.____.__name__, _ustr(<�J)��C}���streamlin ,streamline()S �for e in self.exprs:��%�e.streamline()<�# collapse nested And's of the form�(��a,b), c), d) to�a,b,c,d )y�# but only iN�re are no parse actions or resultsNames on|��V�(likewis� Or's and MatchFirst's�if ( len() == 2 )%wother =F6[0]y��HM�isinstance( 4�,3�__class__ )� :��>�a not(3�.A.�*� is None_��m.debug���# =-�2r[:] + [��;1] �A�`strRep.���f�mayReturnEmpty |p� �=�IndexError =����2 +-1�k0:-1+[:��&2���errmsg = "Expec" + _ustr;rhdef setRZ( ��, name, listAll7es=False20retK`uper(PExpression,�+)._�X� W���8ret�validate��Trace=[]�itmp = #�P[:]+[�E�G(tmp��J�.checkRecur� ( �k ��^BcopyJ67�t�2retb = [e.��z � Mx 2"""�Requires all given C{5� }sb_0undX� -�border.L��s may be separaby whitespace1�M%�qconstruQusingC{'+'} operatod��3�@also]�constructed u@sing the C{'-'} operator, which will suppress backtracking. Example:: � integer = Word(nums)-��!�name_exp �OneOrMore(*�alphas))\��/�*�SAnd([Y�u("id"),I� (" �5"), �gage")]u� # more easily written as�i�D��d�0 + [��f�$ +�!("h��4"""�class _ErrorStop(Empty)l�def __init__(self, *args, **kw �.��super(And.X�,:�%).I� C���>����-�.�o = '-'��leaveWhitespace( � I� , /s, savelist = True �� � <��\�.mayReturn8 = all(e�for e in�.S� I�6set�gChars(.�P[0].w�� =�6kip>�+ =:�s�N�callPreparse�L�BImpl� , instring, loc, doActions=T0# p]False as last arg to _X� first element, since we already�a# pre-9�d ��[��part of our And)�6ing@��cresult�a�(�#, ,P,=�eE1 = �{��� G[1:]g�Pif is`pance(e,�D�/���t��s�����continue�5if ;� ��5�?try����E�3tokens = e.9 �D���qexcept KqSyntaxE�?ionz�Krais� I�EBaseG�eM�Ppe.__!e*__ = Non_���c�z��r._from_�gion(pe�<����a Indexj�h�(v%en�#),Rrrmsg � �?els1�D3xpr ��.haskeys(!+=C�rS loc, resultlist def __iadd__(self, other ):!��%�if isinstance(!�, basestring-��1�C� = ParserElement._literalS5�SClassM�& )m�preturn �u.append%�0 #A�[��]=�?����checkRecursion(+�p��IList�psubRecC9��,= /�b[:] + x�" ]m���sfor e i�Wexprs7�"�-e.� n���1�if not e.mayR [EmptyW��*�ZbreakRstr__� �if hasattrh"name"�Q�z�!�\���!ifJ.strRepr is None�#� = "{" + " ".join(_ustr(e) 7�))�(}"s��T���0 c:A Or(_`Expres�2"""Requires that at least one C{=�}�bfound.=�pIf two _�s match, the�]��j�e longest will be use\�0May�constructed usI�[�C{'^'} operator.��Example:t%# C�3 OrD�5'^'=���>� �number = Word(nums) ^ Combine(�w+ '.' +(�Pprint>�ber.search("123 3.1416 789")6�2�s�[['123'], ['1� �S789']g�d__init,s, savely= Falsesuper(Or,%).C��<���+"�n���E� | = any(?els> t = True�BImpl , �, loc, doActions=:� maxExcLoc = -1�� ep7�! =�tches = [�� */trloc2 = e.try(���`��bexceptIE �ion as errq��3�err.__traceback__��&��� ifC�r.loc > ?LocS���-� �!6err � ��(�a��:loc)��IndexErro�tif len()�Y.J�ng,len(instring),e.errmsg,self) ��maxExcLoc = len(instr>� /�Zelse:��M�# save match among all�es, to retry longest�shortestN�G�es.append((loc2, e)) -�$if_� �>� sort(key=lambda x: -x[0]for _,e inP���;tryf�����return e._parse( 9, loc, doActions x��=�except P:�E �ion as errp� err.__traceback__ = None�Y�� ifK�u.loc > [��5�$� ep� ==�Y�,�3��=loc�UN�ais not� �u�p.msg =  �@raisiY� ��/� a "no defined alternativesM!",�n�def __ixor__(�, other )�Pif isRance(!�b, base[ -��QC�=rElement._literalSSClassM�S��8r� ) #Or( [��]<�� st�$� �if hasattr�h"name"���~��!� �strRepr is #� = "{" + " ^ ".join(_ustr(e) 2�`exprs)+�(}"u��y����checkRecursion(�!, wIList psubRecC9��=/�S[:] +h" ]]���&�"�-e.� n�|c MgcFirst(@pres�2"""�`Requirhat at least one C{=�}bfound.=�pIf two d_�s#p, the f�J�`listed>����\�tn�$wiP�May be co\ uc4�QusingO�C{'|'} operator.Example:3#C�  L�5'|'E���b �0# w?t�order of�"to�3�number = Word(nums) | Combine(�w+ '.' +(�Pprint>�ber.search("123 3.1416 789")) # Fail! -> [['123'], ['��+��d789']]-��# put more se lective expression first �number = Combine(Word(nums) + '.' + �7) |�F�Pprint6�.ber.searchString("123 3.1416 789")) # Better -> [['123'], [''� �b789']]b�2""" �def __init__( self,�s, savelist = False ):4���super(MatchF�,;�%).K��D�):�!ifg�."�R�V� elf.mayReturnEmpty = any(e�for e inM�e�Oelse\�bTrue �� parseImpl 1insw, loc, doActions=:� maxExcLoc = -1S���� ep7�v = None��� �;try��U� re1e._�/( � �8���r^7 re��except PE ��oas err�� if�r.loc > �?Loc)���\� �6err� ��(�E0err^� )��IndexErro�Dlen()� J�,W�,e.errmsg �� >�v�)�# only got here if nocmied, rais}���@� that made it the furthe�#ifais not�+�c.msg =�6� $����7�"no defined alternaQs to !",�)h�__ior__(y, otherPif is7Rance(!�b, base -���C�=4rElement._literalSClassM���u.append%�& #Z1( [��]D�G� st�$� �if hasattr�h"name"����!�/��strRepr is�#� = "{" + " | ".join(_ustr(e)  �+�(}"u��V����checkRecur|L�psubRecC9��,= /�S[:] +h #��n self.exprsG: � e.checkRecursion( subRecC�List ) �class Each(ParseExpres3�)S�2"""\�Requires all given C{5�}s to be found, but in any order.K�f�Ps may1�separated by whitespace1�M%�construc'� using the C{'&'} operatod�f�cample:��8color = oneOf("RED ORANGE YELLOW GREEN BLUE PURPLE BLACK WHITE BROWN") lshape_typeU�SQUARE CIRCLE TRIANGLE STAR HEXAGON OCT�"K�`intege�Word(nums�i�0att!�"�Q:" + ��(�S�Tposn_4�� �3�cGroup(o�("x") + ',' + �`y"))("3�P�>Q��R� �!("�0�Esize/�� �.�e����/��Q# use" (P '&')\paccept �iibutes` L�(P and �b are r1d, �����optionalxcspec =m�{�! &S��3& O9�(U��') ��b���t�����_\�.runTests('''�%�#: U`�:��: 100, 1207���B: 50��@�!UE���+,8<�e� :�"20�:{�K20,4;� �Khprints��"['5�B', '� ��� �� ��', ['100�,�f120']]'-8ACK�@�>�%�Q - x} �*y:-:�1��*k ��@�� �5� UE��"�8&UE�-.+[';�#�5X- y: `�?�!- � @��&����#�]� "['=���� �C�� �2&��� �O�*&�*4*[��>�; ['<�#�+ +P+�A�-: 20 ""%" def __init__( self, exprs, savelist = True ):3��7�super(Each,4�%).D� =�)4� elf.mayReturnEmpty = all(e�for e in�.S� I�skipWhitespace� m���ExprGroups$�&���parseImpl� instring, loc, doActions="if� d�#'��opt1map = dict((id(e�_),e) ��` if is�ance(e,Op�7al)�_��Z�R = [ P�L�" ]�I���Bopt2M�H� and not� `��(#.o��� + x� �*�Xmulti/��ZeroOrMore)�^�required�� /ne\� W�R� 8(,�%,Ok��l�"+=7�W�  = False)�tmpLoc =� �0Req)>`�'[:tmpOpt � %�matchOrderu6] d�PkeepM�5ing���hwhile #� j0tmp�X1tmp�#+ �+� ����u�Bfail��v� ��$�?try���c`e.tryP ( y �9�qexcept 2�E �?ione��.append(eN�?lse=�A��qmap.get�Y����"ifh��*�"�.remove��'�'elS�?OptR� ?OptQ�rif len( A) ==��w���v1+ ifi�s �Bmiss", ".join(_ustr( I[raise(%�#"M_�one or more  elements (%s)" % missing )  �0# add any unmatched Optionals, in case they have default values�`ined M���E�Order += [e for eI� self.exprs if isinstance(e,r�q) and e&��3�tmpOpt] `��resultlist = []�h��:���Bloc,?�s = e._parse(�Pring, �@doAc�*s)<�8��w�.append(��(�*�afinalR��c�3sum'��9�0, Pp��G([])d�preturn � F��def __str__( J' )�if hasattr(�x,"name""���d��"�.!�\���!ifV�.strRepr is Noned��&�;�#� = "{" + " & ".join(_ustr(e))+�(}"u��V����checkRecursion�!, ElementL�psubRecC9��=/�q[:] + [� ?� �-e.� n�)�r class�1Enhr��2"""BAbstract subD�Yof C{5�!},\combining1post-process�#d tokens.]�f��Zd__initK , �`, savei=Falseaasuper(���,/%).Q�D� l�`basestw h��e0�t�3._literalS;�Ci0, T�N�B����" =C� ()���@�<els�?xprS�L�[�\��0= �[��! =�!if.��1not� ?�mayIndexErro���.�S�t�AmayRPEmpty0xpr6��7��setWhitespaceChars(� .w�� �o�Fskip9�o� �o�SaveAs��l�/��qcallPre d��3��pignoreE@.exth�����F\�DImplJLJ=TruPo�`�!�+� j�#, ��else:  �raise ParseException("",loc,self.errmsg �P) 7�def leaveWhitespace( .�2 ):"��&���V.skip&� = False%�aexpr =B�. �v.copy()&�&if� is not Nonen�r�A� �L�areturnP��Signor�y, other�if isinstan�!�, Suppress+���#ifD���io�.d�[Exprs��3�csuper(lementEnho�,�)@�(Z���?���(�+���0�g��W[-1] i�=elsu�+��streamlin  ��').=���C�G��checkRecurs1, p�IList��= in(� |^�veGrammar @� +[� psubRecC��=5�q[:] + [�/ ](  {� svalidat$, �Trace=[]3Ztmp =#�3[:]��(u�G(tmp3�E.���r__str__ �,ryS��e  Y�Dpass��8\� @Repr�A and����� P��1str=�= "%s:(%s)" % � .__class__.__name__, _ustr(<��)8���! G� FollowedBy(�2"""Lookahead matching of the giveQ � esV. C{d�}F��does I{not} advD���S�@posioq within�input string, it onlyO�verifies that-�@spec�dm��3es *�current positi6on. C{FollowedBy} always returns a null token list. Example::���f# use N� to match a label only if it is fx� by a ':'K� data_word = Word(alphas)"�Q�&= *�+{�G(':'-�attr_expr = Group(?�+ Suppress1� + OneOrMore(Y�, stopOn=4� ).setParseAction(' '.join)p��P��0).p?�.String("shape: SQUARE color: BLACK posn: upper left").pprint(l� �s1[['Q�B', 'S�a'], ['X���Z���_���a�2']]�2""" �def __init__( self, I"):!��fsuper(,(�%).8��1��/�elf.mayReEmpty = True]�v�%DImplw�1ins3, loc, do s=:� ��a��u�A.try)( >� �T� []�� class NotAny(A�ElementEnhancem�'Lookahead@disaRing with the given �GCessin�}V�does I{not} advt�@��:��Q�@posi~Z�!in�dinput $!itnO�verifies that-�@spec�d� |�4�rcurrentS��. Also, C{� A�qskip ov ad�whitespace.4�T�} May be co ucted usW��^'~' operator n��n � !#~E�u.leaveW��� = False # do NOTO�KJ��n't wantspropagate ��s�l�o� ���f�errmsg = "Found un_�eken, "+_ustr(-�@xpr).�?��B�e#"if1��A.canrYNext(v�r���araise -�PExcep 2�,X�� � �V���T__str [`if has},"name"�}��!�(�`��pstrRepr GNoneO�&�d#�= "~{" + h + "}"^�?���_MultipleMatch(P0arseElementEnhance): def __init__( self, expr, stopOn=None-��1�super(_MultipleMatch,9�%).I��B�)a�4�elf.saveAsList = True �sender =s��if isinst�(&�, basestring��g�!�@ = P�r�._literalS4�RClassK� �Dnot_C�~ �3if �`s not Q else �" ��Dpt�DImplE����, loc, doActions=� ��u_2_E���0��.�g���,��skip_ignorables1�_�I�5�Ucheck��C�.�i�2�7if 5�+����Ftry_@�=Q�A.tryN� �$# must be at least one (but first see if we are the sentinel;N�if so, fail�(C�Ttoken_)( 7�, callPre0=Fa+W�;tryM1hasPeExprl�(h���G��{while 1O���� �!��� �*���:if �w���(�cpreloc 7 ��@��[[� 6loc�5���/mp��Eif tO�&or �.haskeys(����&+=4��except ( E �ion,IndexErrorV�Dpassh�b�breturnTj�]�0 c OneOrMore\�2"""5�`Repeti1 ofpor more��|Qgivenression.8��Parameters-+� �2�R thatm+ f�RtimesM�$ -- (default=C{q*})R�for a terminatingK��(� (only requiredT��F would ordinarily ��$�rQ�Bexpr�)a��Example: �Zata_word = Word(alphaslabel = d*�+ FollowedBy(':'-�Aattr = Group(?�Q+ Sup�1�$ +re(data_word).setParseAction(' '.join)) �%text = "shape: SQUARE posn: upper left color: BLACK">�OneOrMore(attr_expr).pu�pString(_� ).pprint() # Fail! read 'V�' as data inst�@of n�label -> [['�C', '�;�(]]�# use stopOn �ibute for � to avoid�Bing f�s���part of the���S�� = Group(<�+ Suppress(':') +o�(�c_word,�=4� F�z�^ # Better3`'], ['�G�P1, ''Y� # could also be written as$�  * (1,)� 7�4"""def __str__( self ):%���`if has (�x,"name""��&�areturn>�.!�\���"if��strRepr is Noned��&��]�.#�= "{" + _ustrx�. + "}...��:�|�A���class Zero/_MultipleMatch� �G� Opal repeti ��zero or more��`given �ression./�Parameters�-+� �2� that must m� g�Dtime- - (default=C{A*})S��ta terminatgsentinel��� (only required ifu*�! wmordinarily���Q�)b������Example: similar %L{}I�Dinit,<���`�fsuper(,GC).__D���=�)t�>�elf.mayREmpty = True$� ���dBImpl&,<�r, loc, do s=B� E4try �x�4  �+l��e��except (zE �ion,IndexError2��}��[��[]_NullToken(object�abool__j�)CFalsP__non__ = __bool__ def __str__(self): �)return "" _optionalNotMatched = _NullToken() class O)�(ParseElementEnhance_�"U��g�-� mT� ing of the given expression.��2�Parameters�-'� �.� that mustY� zero or more times�- default (�) - value to be rBed i�(�w�p�is not found�Example:� # US postal code cand�a 5-digit zip, plus h�4�qualifier� .� = Combine(Word(nums, exact=5) +m'-' + %�I4)))R�.runTests('''��~r# tradi A ZIP� $�Z12345� �#9�z+4 form�12101-0001� �# invalidH� �j98765-�3'''�jprints� �!['�$']=ZIP���?�� D���& ^�FAIL: Expected end@ext (at char 5), (line:1, col:6dinit__( �@4pr,=�dsuper(,C�D).__S��, savelist=False �?�@elf.�AsList =�.7����`�.V=� %�AmayREmpty = True��pDImpl�instring, loc, doAc s=:� �7try��2�ts�_f�/( \�, callPre3 sexcept R �ion,IndexError���"ifB $� �B�resultsName+���/���R0�/([��]�:��B�[ u�]N�C�?els�� K�G��V = []0�+!�]Z <if hasattrw|,"name"^��!�\���strRepr is Non�;�#�= "[" + _ustr(self.e�xpr) + "]" �return self.strRepr�class SkipTo(ParseElementEnhance):C�2""" �BToken for skipping over all undefined text until the matched expression is found.���Parameterss�! -0� - target�>�@mark{��]�aend ofh�data to be�"ed� - include - (default=C{False}) if True,E�n�is also p #d T��� (� �?and��Qare red as a 2-ejs list).V�{- ignor�0Non� usf�"o g grammars (typically quoted strings �Z��0coms) that might contain fsH�� O�- failOnR��sp��0not."ow�)beQAd in\0st;6@ bef%�\,Z��,��!���Example:� report = '''�G OutstandIssues R-�- 1 Jan 2000[�5��� # | Severity | Description��| Days Open�-�+�� ���,� V� 101 | Crit\ | Intermittent system crash�|�6V�0 94V�posmetic @pellG error on Login ('log|n')L�V�,14V�79 | Minor/�2| S�slow when runnf�too many&s V�*47V� integer = Word(nums)/�SEP = SupG('|'�S# usee�Wbsimply} 0yth�'up4nC6SEPd�# C, so` '|' character inside a` does  b�1 acPwill Y t�:Pip() �Beach�ken, i.e.FdFbodye�_=S(SEP,=�SF8�A.setA�(�rMap(str�)9�pticket_C = (0("iP_num"0���E�+P�_("sev3��4��days_open"���1tkt&�icket_expr.searchString(report): �print tkt.dump()��'s:,�['101', 'Critical � Intermittent system crash�26']M��n�- days_open: 6�_esc: J�+�issue_num: 101�Tsev: ��@['94�$Cosmetic', "Spelling error on Login ('log|n')", '14�&14`�1- d�T�3��9L���2�@['79�PMinor �Sislow when runn�too many s-�/47�&47e��\�;��(79����2""" �.def __init__( self, other, include=False, ignore=None, failOn � super( SkipTo,P�6 ).a�[� ��r�.[�cExpr =h��"�mayReturnEmpty = True$�aIndexEO!= � $��PMatchl�� %�}asList B�if isinstance(q, bases �'� = ParserElement._literalSClassR�GelseT�]� �errmsg = "N��found for "+_ustr(xrexpr) @�� p�DImpl ���, loc, doActions= tartloc =+�S���B�0len�1en(�8ing��<���_�! =L.�.�'��:�_ A_cani0Nex��.�.�"ifQ�� is not  v � b�A_tryf���.�b��f� p�?tmpK�cwhile �1<= L;len#y�� 6��# break if pession m4&es��2���p�,� #�@���x�[��� �m�V� 0advS pastg���q1*���?try�� = self_ignoreExpr_tryParse(instring, tmploc) ��qexcept 4�QBaseE�Oion:0��C�Zbreak� �?try?��e�p� , doActions=False, callPre�� ��("��, IndexError)�� # no match, advance loc in 0 ���@Z += 1�Oelsec�`�ed skipto ���*ne@��]�L�U��# ran off the end o �Sinput� without�:ing~�Ffaile��z�Rraise>6loc, self.errmsg �6) F� # build up return values"��Z=�dext = [startloc:loc]+�Presul-�R�$s(E�7�"if�includeM � maX��_��,��� +=(�S�)��"�class ForwardlementEnh2"""�,� declara3�!anf ession to be defined later -@�used for recursive grammars, such as algebraiqfix notj�.D�BWhen3xprs�is known, it is assig~�!to+�#C{�} variable us�'<<' operator.�Note: take care wx�Y�9�'o V�0not�overlook precede%of\�s�pSpecifiy, '|' h�h lower<�Pthan �0, s�7at:I0fwdv << a | b | c$will actuallyexated asC�(D�)E�thereby leav�b and c 1as Jalternatives. Irecommended that you�explicitly group�� es er�-in��(�pConvert�ato usea�F'<<=�i�Rtead *0voi�is problemhSee L{.pprint}QampleQr crewn�7_def __init__(D0, od=None �csuper(,*&).;�5�, savelist ?h�\lshifj� e�Pif is%� (�, basestring ):  �other = ParserElement._literalStringClass(*�2) 8� self.exp>�� �QstrRe�KNone�mayIndexErroA�M�.�6�ReturnEmpty =��7�� 8�setWhitespaceChars(;�w�� �Fskip:� q� � q�aveAsList4�� 0�ignoreExprs.extend(��r �M� ��def __ilshift__K�!, "):#��B�2 << ����G�Vleave7 F�� w = Falsk�& ^�streamlineY��aif not�.)�d����H�wd = Tru{��%�"ifG�!isX�� L��+�P��(�t�(w�svalidat�$, �Trace=[]3��*in,� �Ztmp ="�P[:]+[�]�����V���G(tmp��_�.checkRecursion([])__str__rhasattrzh"name"4��.!���0__c}P__.__&�__ + ": ..."��N�-# stubbed out for now - creates awful memory and perf issuesz��q_revert� ,�� = _ForwardNo4;try2ret�d�#usV�Kelseh���A�""�lfinall���B�E" + ��_Acopy%y�Super(|,�!).W�� re7�22 <<_��0urn�������/�"U�TokenCon1er(tEnhance^�#""Abstract subE�Rof C{;�xpression}, for converting parsed results. """ �def __init__( self, expr, savelist=False ):1��>�super(TokenCi�0er,<�&).L��F�6 )#I�' )B�@elf.b�AsList = f� class Combinee���� to concatenate all matcht�s#��a single string�By default, the9�patterns must also beh�tiguous in1�SinputT�;�this can1�disabled by specify�C{'adjacene$'}Q�constructor.�vExample: real = Word(nums) + '.' +���A�`print(4�.S('3.1416')) # -> ['3',G�1, '�]C�b# will erroneously2 following5�x� `�y� F���4 = � j}� |� �#no�1where are inal spaces�n� �Exception: Expected W:(0123...�BjoinU="", O?Tru=�# suppress white�-4 pp!inRaineda5essions, but re-enQ it o>0 it.p�%if���(�u.leaveW�(  ��% =G�\�B�FskipA�0 = ! $�L6 = � &�qcallPreAH�$��dignoreJYother;!ife.� �PrElement.M���!, L��Kelse>�f,j�)F�A�areturn&�d��Apost��iing, loc, N� �retToks = �X.copyCdel (�'[:i�A += y�R`([ "".(t�B._as�8("��)) ], modal=� �O�)��8rk�pName an'�.haskeys(r�4���4[� ��/����_GroupJ�"edis as a list - useful for returning tokens of C{L{ZeroOrMore}} and�5One�expressions. Example::���ident = Word(alphas)�4num�8num�0ter�?�V| num6�rfunc = � + Optional(delimitedList(B�)l�`print(<�.parseString("fn a,b,100")) # -> ['fn', 'a�b�T100']����I��oGroup(� �+[�]2""" �def __init__( self, ' )asuper(�,#�&).3�-�M���� �p.saveAsQt = True�o�PpostPLp�1insVb, loc,SIlist�s' [�Zclass Dict(TConverter���3 to a repetitive�` as a �, but also�1dic82ry.�Each elem2can,�be referenced us+he first�l in thv�dits ke]�Useful for tabula{port scrapV�2wheH�[�pcolumn �rbe used�CitemY��vdata_word^ zlabel = *�+ FollowedBy(':'Qattr_!= <(?�Q+ Sup1�5 + "(Y�B).se&Aq(' '.join��n0tex(#"shape: SQUARE posn: upper left color: light blue 9�ure: burlap�S���, stopOn=�� �g����!# i }�`ibutespplain g%s,�*�(4�4�h)��p).dump(4�p���H� # y0eadO��1), ^"�(�A)) -} will auto-assign name�PresulM��)����L�� aaccess�qd fieldS� entries, or outp s �j�!['`0'])B��(�1.as�p�sJ�2, '�&������ ����0ure � a[b�_], ['d���f�� h�ap']] - color: light blue �- posn: upper left�shape: SQUARE��texture: burlap� +�!{'}�F': '�@', 'w���y���X���Z������]�"'}o�.See more examples at L{ParseResults} of accessing fields by r �b name.O�2""" � def __init__( self, expr ):!��;super(Dict,"�&).2�,�+�elf.saveAsList = Tr"��n�Apost�o�instring, loc, tokenl<��for i,tok in enumerate(-�,���`if len �g) == 0�����`contin����`ikey =�2[0]��@f is�Pance()�L,intz��.��� = _ustr�P[0]).�=p()T��?==1���[U�]V�>�WithOffset("",i^�'el==2 and not�xtok[1],U���Q��/se��dictvalueu.copy() #�(L��dEdel =� �"��%�)!= 1 or (� *�.haskeys()�l�U� �H�/el&��c� 1[0]f�t!if.<Namreturn [��1�� �class Suppress(TConverterF� 0gnoE the� pd�0on.l��E:cPsourcX"a, b, c,d�1�wd = Word(alphas;0wd_ 1 = wd + ZeroOrMore(',' + wd.�dprint(4�.�S(�$))��x�# often, delimiters that are useful du��K����@just'th# way afterward -A�u to keepGPm out!�S�X� ed�'pu�2��O',') 2��*s0['a,�b� �c �'d'|-�(�#�d'] (See also L{delimitedList}.) """ �!def postParse( self, instring, loc, tokenlist ):6��C�return [] ��K�suppressJ�0��b��2� class OnlyOnce(objectb��Wrapper for p� actions� ensure they are only called once.�N���__init__(�, methodCall|�����.I�able = _trim_arity(2�_� 1�ed = False�s��K�s�Es,l,��<�aif not}t�'edh�!�results =$���(J�h��(�����3Tru�����S�<�araise PExcepea�#""5��Qreset:.t�� 1�QtraceV�A$(f9�Decoratodebugging". ��@When $�3 is, this dY�will print C{">> ente2 I{-name}(line:I{current_source_�Q}, I{P_loca�matched_&os})".}� complete/he�<<"} followed by�ed value, or any eQ that*��*  d.v�0Exa�:dwWord(alphas),��0�@����remove_duplicate_chars(�-���� ''.join(sorted(S�8�)� wdOneOrMore(wd).seW��{�Q(wds.S("slkdjs sld�`d sdlf�0jf"�:�s0%>>@x�H/ '^�', 0, ([#� ',-�d��1dlf�dljf'], {}���`<<leav(�� (ret: 'dfjkls' [�]ff5��z(*paArgs�fFunc = f.__C"__U���2 = 9�C[-3:r���rif len(�7)>3��[�#�a[0].__5%__m� + '.' +��~�ys.stderr.write( "$%s%s', %d, %r)\n" % (}�,Q(l,s) �+ry�0ret(� W0 as @�s�B%s (G�}ion: %s�exc) ) raise �0sys.stderr.write( "<<leaving %s (ret: %r)\n" % (thisFunc,ret) )I�return ret�Btry: ��j�z.__name__ = f �!�except AttributeError=�Bpass*�e� z # # global helpers� def delimitedList( expr,�=",", combine=False )l�2"""g�HO� to define a=��R� list ofU�essions - the$�r7�PaultsC�B','.W�$By�,0�J�elements andB�s can have intervenwhitespace,0�W�1comB�`, but =�be overridden by G�E�$C{�True} in�constructor�5If ,�} is set�!C{9��PmatchW�tokens areurned as a single ��string, with|�rs included; otherwisei�W�n�U"ofo�sd�suppressed.J�Example: ���EWord(alphas)).parseS� ("aa,bb,cc") # -> ['aa', 'bb�Bcc']�U�hexnums)6':'�j o�AA:BB:CC:DD:EEu� �u��dlName = _ustr(r)+" ["+�����"�C]...$if:'rCSm + ZeroOrMore(! +3 ) ).set�(�)NelseX�Q�S[�)]� countedArrayU�,\Expr=NonE�5CThis�0ineppattern8�*Hformk�2ger!�x �#..T�Qwhere)@leadm1�tells how many6��cfollowG�AThe #eds\�a���sT� F�R�B0inteBpecified, it should ba pyT����� that producGne)_value �'2 ab cd ef') dD���#*0is �"er��@give� binary,I�'10' indicat��!2 <�C:�K�Caant = �A'01'TPAction(lambda t: int(t[0], 2)C) �RcountedArray(Word(alphas), intExpr=binaryConstant).parseString('10 ab cd ef') # -> ['ab', 'cd'] j�2"""s�ah��V� = Forward(�Adef �`FieldPe�Action(s,l,t):B���sn = t[0]���X�<< (n and Group(And([expr]*n)) or�cempty)|��C�return [V�$if is None�1 = 3nums).set�lambda t:int(�m�?elsL�V�T.copy�setName("�CLen"�!�)ad4J, callDuTry=TrueG��(�!+ j���'(len) ' + _ustr(Z) + '...') _flatten(LUret =]for i in LUQf isifce(i,lis.extend(d�iY�!� ]��pret.app4�i�4ret�matchPreviousLiteral��Helper to define an ession that2indirectly(�bd fromthe tokens y� ed 3a p�Q�,R�, it looksD��Da 'repeat' of @� . i example:��@firsY���second =� :�K�.��*!= � + ":" + H�X�BwillP� C{"1:1"}, but not�2"}. Because thi2s aD�!l!, V�Calso[��[rleadingU�01"}]s�B0"}.J�"Ifa�!is�desired, z�!C{����7�Do I{not})�with packrat �v�senabledh�8?rep0pyT 1ToR.erGif t�vif len(t) == 1��!��r�+<<*��%���## # t+���t#�5 = ~t.asList(.���T@tt)  ttO�J��D�E�p. G p�W �?rep,�)'repeat' of a previous expression. For example:: �first = Word(nums)��second = matchPW�QExpr(7�+�"���1 = � + ":" + E�U�BwillM� C{"1:1"}, but not�2"}. Because this0�Res byE��1s, R�bI{not})� the leadingS�c1"} in �B0"};G��(�K� are evaluated�P, andQ�n compared, so@����Z�s�Q withh�B0"}.&�3Do ���!�packrat pars�senabled1�2""":�Prep =Sward(kAe2 =T.copy��+�b<<= e2;�@def �TokenToRepeater(s,l,t)&�s = _flatten(t.asList()w��,�U�PmustM RThese9�V��.�t!�Z��0�0if iU�# !ud���-��� raise ParseException("",0,""�qrep.set(�!Ac%� �, callDuringTry=True H��&H.addE�_�C�B��pName('() ' + _ustr(`�jreturn rep t _escapeRegexRangeChars(sB#~ #�A c �R: ^-]Pfor cwr"\^-]"M�s.replace(c,_bslash+c� �`"\n",r��t�t���X�oneOf( strs3seless=False, us��'Helper to quickly define a set of alternative Literalsmakes sure@�dlongest-@test@whenO re is a conflict, regard��n��Einput order,r���<�AC{L{5Fk0}} best performance.�Parameters�! -+ -�t�y�space-delimil�!or�1lle-�7�$��R - ca} - (default=C{�}) - treat all ;�5 as6�G� G��BF�as an optimizapgeneratQ�� object; otherwi4�CV1�t (if C{�FX}, or\�@if c��Aa C{}�!} R�eQ)E9� _o"= �"< = > <= >= !=��4vardPalpha����Unumbe� pterm = @�"| *����arison_expr = term + comp_oper + term �`print( �'arison_expr.searchString("B = 12 AA=23 B<=AA AA>12"))J�F�2s::��[�[['B', '=�12'], ['AA��"23�%�<�"AA�&�>+��9�]U�2""" �if caselessp�isequal = ( lambda a,b: a.upper() == b ����]masks8�+�.startswith(M�') A�parseElementClasM�C�rLiteral�Oelse��b������`symbol�[b if isinstance(strs,bases)�;��%�s.split(/elG�� collections.I?bleR�Alist|�P� 4warnings. �("Invalid argu to oneOf, expected �A or Rble",��rSyntaxW_�, stacklevel=2�sif not �return NoMatch _�Ri = 0 �while i < len(C�7)-1F�Tcur =^�#[i�� for j,other in enumerateH�h[i+1:]O�6�Sif ( (=�|, cur) )��-�6del{�G+j+1�� ���Rbreak�����!( a(cur, i�d�'.insert(i��r��.n� ��!� � w�"�i += 1 <�V and useRegex1#~   ,"->", "|".join( [ _escap8�PChars ) 0sym�$] 9��7tryf���)if( ==6"i�D�)�( "[%s]" % ;��_Range� ) ).setName(' | '��=����f��� �.2re.-#}�except E�;ionL�)2'� creating .;Pbuild�_First3��7 a# last resort, justa `�L-�(\0 '.join(symbols)) def dictOf( key, value ): """ �Helper to easily and clearly define aJ� ionary by specifying the re�tive patterns\�1for!�"keW��. Takes care ofe�L�C{L{Dict}}, �ZeroOrMore�����Group}} tokem�!inl�0pro�Porderk� he�� can include delimit{�markers or punctuation,�as long asb� y �suppressed,�reby leavM��significant�Ctext�Z�/ �PnamedTults, so thate�" C�7��\�pfields. �Example:����� = "shape: SQUARE posn: upFleft color: light bE�9�ure: burlapJ�S�attr_expr = (label + S,(':') + One(data_word, stopOn=4�).setParseAc(' '.join�g���fprint(L�{�0).p;�pString(�x).dump(>�$�H�8�w�1 = � �/ =�9��# simila�P, but�pler call format�result =6Of(�!, �� �C�?I��!['!?'])>��) # object�ibute access works tooB� as�~�s[�2, '`'], ['F', '�����0ure�6']]�-��n��E�r�-���"{'�7: '�#, : ", :3, '{�C': '�}o�qreturn ~ l!( b ;$ +<5 ) \originalTextFor(B, asw_=Truelx��*I�A, unPized �� a given `�ession. Useful tPqrestore$"d �_an HTML start tag intUQe raw�m�pitself,X�vert separateoP withE�Perven�whitespace backM� matching}Qinput�1. Bdbault, As asq contaia� N����. I+f the optional C{asString} argument is passed as C{False},9�n� return value-�a C{L{ParseResults}} containing any r� names that were originally matched, and Z�single tokenT��<�:� text from�qinput s�. So if��>�expression�!to��vTextFor�&s 4�s with defined �, you must setoh�\���(�want to �erve thoseW�{Bs. �Example::��src = "thistest <b> bold <i>%</i> </b> normal:"E�for tag in ("b","i")d��h�opener,closer = makeHTMLTags(tag)N��/�epatt =](F� + SkipTo(O�C) + � F�Print(L�r.search(src)[0]t�p&�s/['&']c�'['!�#""qlocMark�Empty().set AcX(lambda s,loc,t: loc�8end@� �o.copy(%��.callPrepX1 = 1�*0ExpwI�4("_p_start"F�8 + ~�)�Cend"|�4if pextract6 = ���Ks[t.t�:�3end\GelseU�Gdef Y�l(s,l,t`t[:] = [f�[pop('k�['):t.�cend')]u�& {��+�`ignore\1s =.�5����ungroup(t#):k>`Helperpundo pyPing'sFQault ?��2aof And�rs, even��ll but one are non-e.#�v��T@Converter� 2t:tJ �plocated7�b��decorate a)#ed,Aits ���0end �b�@ionsn� �ThB0addBe followC� z� -~n ���� whyedr beginsq�>�?end<�6end:� =pactual $ed�2�Be careful ���<TAB>} cha3ers^4ay :�.�rElement.parse WithTabs}} Example::���wd = Word(alphas)�*for match in locatedExpr(wd).searchString("ljsdf123lksdjj �kjj1222")n��r�aprint(Y�m��s�a[[0, 'V�f', 5]]�0[[8�i�K', 1�1�kjj', 23;�2"""D��or = Empty(� tParseAction(lambda s,l,t: l�return Group(D�("locn_start") + ea"value�(�@.copi�leaveWhitespace()A�`end"))� # convenience �pstants @posi�!alj�essions e��[* �aName("�") lineS�(�L�,�#�0�1EndZ� = 0�<End.�E�1 s ^�"= �0�%��`��b�4� b�#��0� _escapedPunc _bslash, r"\[]-*.$+^?()~ ", exact=2  t[0][1])a�`HexCha&Regex(r"\\0?[xX][0-9a-fA-F]+"W� punichr(�b� .l�p(r'\0x'),16)�>Octs�O[0-7h�b[1:],8\�csingleX�j�>$| ����|PablesQAcludR�ps=r'\]'��eU1) | .w", re.UNICODEZcharRange =G_�+ Suppress("-=��?�reBracket teral("[.�"Op2("^rResultsRnegat OneOrMore( _�'| v�" )7 J�Abodyq�0"]"`def sr�$(srm Helper to easily define 1ng 8�0useg�!ru. Borrowssyntax from rip '[]'R�f�+ V�"]") -> "0123456789"�+�6a-z+� abcdefghijklmnopqrstuvwxyz;� $_=��f�;�#$_=� Th4put�must be enclosed!�[]'s, and the r$ed2�!is�expanded3�acter set joinK�Rto a ?�.0���sz��p��~�t may be-F�i�H�c - an  � with a leading back (such as C{\-} or �#]} O�?hexS�ading C{'\x'} (C{\x21}, which is a C{'!'} character) ��2�Q0x##},�lso supported for backwards compatibilityD�- an escaped octali�� with a leading�2\0'�/04� �- a range of any�the above, separa�by a dash'a-z'}, etc.)J� ny�binationK�6�Peiouy9� C{C�A-Z0-9_$�K�2"""T�B_expanded = lambda p: p if not isinstance(p,ParseResults) else ''.join(unichr(c) sBc in�(ord(p[0]), �c1])+1)�Btry:��return ""S��R(partY�� ��\�_reBracketExpr.p�String(s).bodyb�except E�?iono� def matchOnlyAtCol(n)-�,Helper metho\Pdefin�0 acs that requireW��$�at a specific�`column��input text.�z���`verify�strg,locn,toks��Cqif col(��&�X) != ��%�araise (.�T�"ed token atW���s%d" % n^�JreplaceWith( �4Str��Mcommon K�ssimply o�a literal value. EVBally8useful when usedC{L{transform.<rElement.�`>}()}.��7Example:��pnum = Wnums).setR�A (Q�`: int( �� @D�a = oneOf("N/A NA"H��DPmath.nanD�D�0ter�na | num�� �OneOrMore(-�)3"324 234 �234") # -> [324,�Q, nan �]R��s,l,t: [�@Str];�removeQuotes(%�;��>Bquotmarks from, d �Aed ss # by default,8�T�are inclui2d r��Wp�C J@'Now�`Winter�our Discontent'`"/�H�x���# R1 to�p�$� _��6&inter of our Discontent"] """ � return t[0][1:-1] def tokenMap(func, *args):5�>�Helper to define a parse action by mapping a I��to all elements of a P8� Results list.If any addi7�2al ~��� are passed, they�forwarded�the giveny�(asN�Bargu�Rafter]��6��, as in C{hex_integer = Word(hexnums).set�A�(:��5int, 16))}, which will convert�o�.`d data�4an j� us6base 16.�Example (comp��@last>�e�Qin L{�"rEd.transformString}:�T��s = OneOrMore(���O�.runTests('''��#�00 11 22 aa FF 0a 0d 1a%�F''')� �upperword_alphaAstr.5�)P����P�)�my kingdom for a horse�����w�_title�-wd' '.join� `now isl wVriUour d made glorious summer0thi�n3�Fyork��� �hprintsN[0, 17, 34�0, 255, 1�Q3, 26�\���x �['MY', 'KINGDOM �0FOR�A�iHORSE'R�C['Now Is The WngOf Our} MnGnSn@By TnSun Of York���h�pa(s,l,t�!�[[�}n0tokP% t7try�6��_name = getattr!'_�C__',u�n�� 8�class__').D�vexcept E�?ion�s�6�%paH�! =� pa�pupcaseT�lambda t: _u_�"t)(o"""(Deprecated) &to^�1to 8 r�&. A��3Afavom@L{pyI�ing_common.�}` downH��_lower�action to co@nvert tokens to lower case. Deprecated in favor of L{pyparsing_common.downcaseTH�}""" def _makeTags(tagStr, xml):#�"""Internal helper� construct opening and clov� tag expressions, given a�Ename�if isinstance�basestring���0res;� =F�2Str���� = KeywordH�'less=not�4�Celse��?� Y�.g�" ,��tagAttrName = W^�qalphas,�nums+"_-:")0�Gif (>�`�C�@ValuD�dblQuotedS�.copy().setParseAction( remove*�#s ]��N��pTag = Supcs("<") +Q("tag�\��5��Dict(ZeroOrMore(Group(:��+X�=H� � ))k�[�� Op�al("/",default=[False]�pResultsJ("empty"��lambda s,l,t:t[0]=='/'r��>k printablesLessRAbrack = "".join(c for c++�` if c Ein "[��0 �?= q" |0n��W Zd �\   x�~� = Combine(_L("</SStr +M ��- tstart"+E,.replace(":"," ").titleqplit())<%s>" % <�� � }�?end{�,/|���=����areturnATag,�q�,�H�GGHTMLKHC#�\�L. Matches�@tagseither up'or9, attributes with aspaces�c or un �v s.��!Example:Ktext = '<td>a info at the <a href="http://R.wiki�.com">pyparsing</a> wiki page</td>' �*# makeHTMLTags returns pyparsing expressions for the open�qand clo(�t?�as a 2-tupled�a,a_end =l�V("A")%�Plink_m� = a + SkipTo(:�1)("�text") + �<� ����+�@ in �R�.searchString(E�&):3�� # attributes;���<A> tag (like "href" shown here) are also acc"ble as named resultsg�`print(�.�_�q, '->',�.e�,�'s:�-> http://�.spaces.comx�2""" � _�(�Str, False ) defX t(tagStr+L�Helper to construct =XML, given a�-. Matche-IDonly0�upper/lower case.���Example: simila� L{�}�7Tru TwithA(*args,***ODict �reate a validat,�Pe action=be used e�` start1s c<�d��"C{�d}} or ��}. Use C{4��}k�qualify ah���7tagb�a required��0ue,@�qavoid f*m on comm�ags such acC{<TD>�e<DIV>}NCall�����eries of��O s jvalues. Spec��Blist�of filter<�=�4 asQ- keyword arguments, in C{(align="right")}, org� -%� anlicit dictPC{**} rator, whn�3 is7s PythonY���70erv6ord� **{"class":"Customer", "�#":�}�� �J�@-; �( ("ns1:X�&, Y�!),�"2:_�,_�)'��'Foe�sa �� prefix, you must=`secondLEm. ��sZid insensitive���2 A�@If jn�1tesw�!C{�1} (h!or�Gout �!),��X�&�Cn}bTo verw!at�� 3P exis?"bu �[�s�m�L5pas#�e��.ANY_VALUE}_�7 html = ''� <div> Some text �<div type="grid">1 4 0 1 0</div>.�aph">1,3 2,3 1,11�>this has nok�)�n�����6''' �div,div_end = makeHTMLTags("div") -�# only match �ag having a� attribute with value H��q��% =F�().setParseAction(;�AI�(U&))E��A�R_exprF�_� + SkipTo(�|^���p)("body�� ��@for 2�_header in��Q�.searchString(html):x��>�gprint(@�.`��/�# construct a;��@ any�/ tD, regardless of theR_��K@any_% O��b.ANY_VALUE`�Z��V�_e�c�E�b���S�a�0�>�`}'s:k����dB2""" �wif argsT��1s =�2[:]'�Oelse$�ttrDict.items(B�p[(k,v) r0k,vj�S�def pa(s,l,tokensl�4��-�PName, �VP!inh�����0ttr-�@ notj�S���(���araise uQExcepx��2"noA " +t��]���G���w��!!=\�R and �[��J�A] !=W�=���C�iA'%s'm��, must be �2" %���(]���,�,�-return pa W = object �*�pClass(c�n �space=''Simplified version@C{L{L�qv}} whenAon aii�r - madedifficul*cause C{&�} is a reserved wordOtPython.gxExample�.9 = d�s� I �J/�K<div>A1no J� X </div>  �$ �6''' �div,div_end = makeHTMLTags("div")+�@_gri(�div().setParseAction(withClass("'�'")<�F���_expr = y���� + SkipTo(div |�end)("body�@for 2�_header in��Q�.searchString(html):x���gprint(@�.`����any_type�� ��Attribute.ANY_VALUE�Q���M�_\���E�����S���0�>��'s:+1 4 0 1 0 @��K��1,3 2,3 1,1(�2""" �c0attA"%s:�" % namespace if �belse "&�B�yreturn YA(**{$�Z�!: ��R� })����� opAssoc = _Constants() �.LEFT = object�JRIGH�� def infixNota baseExpr, opList, lpar=Suppress('('), r�D)') 'Helper method c�ructing grammars of essions made up of,operators work:�in a precedence hierUy. O.��may be unary orM� bi�, left- or right-aSiative. ! as can alsoM�attachedM�4to ��. The gen�@ed pFbr willI�recognize the use P� of,�entheses _�vverrideh��s (see example below).J��PNote:you define a deepP�l�!��0�Q�performaZbissuesN�rwhen us3. See L{6rElement.enablePackrat}aH�mechanism� potentially improve your Gser �.�Parameters-' -0 re�a�!ngl@most,�Bic e���Dnest# -0 - !�tuples, one4�FeachG` level2the� �!; A�V�! i���z5�2(opnumTerms,ALeft,&), where ��A��_��\� py�o���;~��j�0 st{�g�2ichbe converteda LiteralG�� ���3[�"a gof two)$s,�� two operators separating the 3 terms �`- numT�1 is"�number of*� for this operT�e (mustB� be 1, 2, or 3)�- rightLeftAssocb�QindicJ�`whethe`�e_�i�" C��Y�`left aH�iative, us�Ppypar�-defined� constants C{op�.RIGHT} and�eLEFT}.;� - U�teAction��" a� to��ued with@� expressions match�M#�X (the>� l�quple me0mayz�tomittedr- lpar -w�z��C -parentheses (default=C{Sup�f('(')}S�rS� T�)T��Example::��@# si�" e��four-funlarithmeticf i�variable name;integer = �_common.signed_"��0varE�3�identifier 0� ��_ = infixNota9(f�3 | _�,7���[�P('-',O )5�(oneOf('* /'){�.�?+ -.�]' ��.runTests('''�Z5+3*6�\(5+3)�j-2--11)�''', fullDump=False� pr/ h� [[5, '+', [3, '*', 6]]] b� �[5�&3]5�4� �1[[[20���!11l��2"""s�ret = Forward(�plastExpAbase �2| ( + 4�!+ p1��{ i,xDef in enume(opList)C opQ�,!y,yt,pa = (I�+ (None,))[:4]����Name = "%sB" % Y�A if \� < 3 else%� '�N�0�G== 3��j�%ifV� s �"n(l�k) != 24��8�raise ValueError("if��Ds=3,V���!1a t7por listV7two #s"k�^����1J�32 =T��� �k@.set;(�� �W�"if =U�� �91����llowedBy(^xpr + opExpr) + Group( lastExpr + OneOrMore( op�g) ) �elif arity == 2:��)�$if=�is not None(���,�Qmatchi�= FollowedBy(��+��2� ��{�?els�$+�� (�E 3�'1 �+y2���\��u\�S!raise ValueError("operator must be unary (1), bi �2), or ter�73)"FrightLeftAssoc!op �k.RIGHTW1�� # try to avoid LR with this extra testK!ifisinstance(?, Optional)n���r�(�% =)�:���'���B�".e���M�!�! +���X��0� ��"':��T-h����(G� \� [WC ?g� indicate �0`left aiativity7[if pa[.setParseAcH( pa7i<<= ( 7�Name(term �5) |A�R=N@ret U�!��urn ret 3Precedence = infixNota� """(Depred) Former name of C{L{infixNotbation}}, will be dropped in a future release.""" dblQuotedString = Combine(Regex(r'"(?:[^"\n\r\\]|(?:"")|(?:\\�x]|x[0-9a-fA-F]+)))*')+'"').setName("st^�benclos�double q~�s") sg� !"'q�'�?'')� o")+"'"� Ising��AO| �Ro�3 �u� �mle or y}unicode_L('u') +w.copy()R@� pliteral def nestedExpr(opener="(", @r=") �ontent=None, ignore1�=�z�:E�M�Helper method f�sefining{�x lists ~���!�1and�2ingV�Pdelim�ps ("(" !�")" are the default).>�~�Parameters�0 - ^�#er ��g�character�a�# (S�=C{"("}); can alsopa pypar expression�! -�j��Nj�)j�' -��items within#u��%})�T������J����<*�f�h�XIf an�is not provide/�c�argument,�K�~a1capR�all whitespace-�$d S�between �"rsQ�Aas a& of separate values_"Usx&C{0$} �0 to7ine�s that may�#ai/L!or7�W4�ashould"be treated as$A��y�ing, such8��}Pa com`T. Specify multipl�an C{L{Or}}N�� �MatchFirst}}.V�Th is L{�}, but if no5tj"d,N�then pass C{EthisExample:  data_type = oneOf("voit short long c float�@�`��Xdecl_I�Cdata_type + Optional(Word('*'))) �ident = �alphas+'_', �1num�1� number = pyparsing_common.�[�arg = Group(decl_data_type + x�W�LPAR,RPAR = map(Suppress, "()") X�code_body = nestedExpr('{', '}', ignore�=(quotedString | cStyleCommentW�P_func,; = � ("�6") /�@��`("name�� � + �D + OdelimitedList(arg), [])("args") + x� (""�v�c�.(�V� �psource_W�f = '''��W�int is_odd( �Ox) {�return (x%2); �}Q��U� ��X�dec_to_hex(char h�l�Aif (� >= '0' &&/� <= '9'6��w���B� )- �M'0')��0�o} else���O�010+G�R�AR� ��2�} y@for G in bsearch(*):k�print("%(`)s (%(@)s) f0: %yas)s" %h�o:�'s:P� >�`[['int}Fx']]{� /���0�#4�2"""=�pif openf= closer�raise ValueError("-��1and/�� �ss cannot be the spif contwis Nonee�if isinstance(a�rer,baseX� ) l�"��"�M��cif lenJ�a) == 1D���=�K)==15�9��@ is � ��(���= (Combine(OneOrMore(~K�+m8��CharsNotI�+�+ParserEleK .DEFAULT_WHITE_CHARS,exact=1f�Q).setR�A�(lambda t:t[0].v)p(J��7��� empty.copy()+�'3�#��(Combine(One OrMore(~ignoreExpr + �~Literal(opener) + �Aclos�K�'CharsNotIn(ParserElement.DEFAULT_WHITE_CHARS,exact=1))\�Q).setR� Action(lambda t:t[0].strip()J�_else:a�content = (Combine(OneI �raise ValueError("ing and  �0rgus must be sngs if no Kexpression is given" rejForward(�7if is not Non�9�<<= Group( Supd�CZeroO� | ;�|��>����� �9�t��.�g�& +� h�0retName('nested %s%s :C' % �,>��`return� def indentedBlock(b�AStatt�,"�TStack �c=True)2"""Helper method for definspace-delimi�v�a t�s, such asL�those used toH�e*�$ s� s in Python source code.��Parameters�" -C� �' -:j��yntax ofp�R that��_���is repea�within the3"edo�3�-�J - list cr=�by caller�TmanagF�%sI��y� (multiplJXWithI�#s �a single grammarV�should share a commU��J ��U`oolean�@icat?rwhether�Peyond, ~��=@currUlevel; setQFalseU0�left-most>" (default=C{$})cA vali��ain at least one C{n�1}]Example:[ data = '''��c4A(z,�&A1!� B = 100�hG = A2� �3�B ��m�BB(a,b,cr�)BBs�)��A(): bba1 �Mbba2�3�C �D �def spam(x,y):�Y���meggs(z�� �Fpass2�P''' �����indentStack = [1],�stmt = Forward()7��6�ifier = Word(alphas, �Vnums)J�funcDecl = ("def" + iB�+ Group( "(� Optional( delimitedList(2�) ) + ")"�+:"l�_body = �edBlock(�,�� 6�TDef =�� + �R� jrvalue!�R���3�0Cal����� � �W�)���U << (_�|G||8�assignmen�=u^�7��.m���'| K� z� bmodule1= OneOrMore )�parseTreD5�.�String(data���3�p.pprint�p �'s:[['def',J 'A�['(', 'z�:)'],�:,�['A1'], [['B1�=�R100']�G��"A2�' �, ['A3']]_��C���+BB��ag�b�c��$BB�` 'BBA'���A�0 ':� ['�� �2 �� �C�)'D��� %� x�y�����[ '��3����vR]]]] D�2""" ��2checkPeerIh(s,l,tAif l >= len(s): returnA��sPcurCohcol(l,3if �!pG[-1]�F�+�>*���.�praise P8FatalExce-�"illegal nesting >� 9�not a peer entry:��+?Sub*�/=  � '.append(E�KelseB�?sub�"Unv�>2 if not(in dentStack and curCol < in�I[-1]�=�w2]): �raise ParseException(s,l,"not an un`�&")9���.pop() �.NL = OneOrMore(LineEnd().setWhitespaceChars("\t ").suppress()a�INDENT = (Empty() + ��G��!Ac�checkSubI)g�bName('E�'S�PEER =H� CPeerI��h�H�B�U�� U+�*UN�#ifsmExpr = Group( Oal(NL) +Y #~ FollowedBy(blockStatementF� 1��F + ( +p�E� �)ROelse�$�,��@.ignu_bslash + 4�rreturn p1ed T�� alphas8bit = srange(r"[\0xc0-\0xd6�8 �f �f � f]'Opunc;� a10� bf;�a7\0xf7/� anyOpenTag,anyCloseTag = makeHTMLTags(Word(�,�nums+"_:F"etany tag'N_htmlEntityMap = dict(zip("gt lt amp nbsp qupos".split(),'><& "\'J�`common�O� = Regex('&(?P<ed�>' + '|'.join(}�@.keyW +");�"Z� [� G��Bdef replac�u�$(t"""Helper p1r a4 to6� X�ies with their special characters"""l' �bget(t.�# it's easyy�0get[�!se{�ent structury�`rong -!�y're very(�on, so may as well�)�m available cStyleCom = Combine(r"/\*(?:[^*]| �`!/))*"F'*/'@"C sI�|�0entl"V� ofw� form C{/* ... */}"�K)�r"<!--[\s\S]*?-->�g� �B�i�2-->j�`restOffr".*").leaveGW"5� of line�@dblS��//(?:\\\n|[^\n]' ?"///�t(to endv�)�?cpp)+| �).setName("C++ style comment") "C � of either form C{L{cS.�!�Q}} or�dblSlash�" java0�h = cpp� "Same asG� �!}}G�hpython7� = Regex(r"#.*").setName("P,�� 4the�# ... (to end�Rline)w�_6asepitem = Combine(OneOrMore(Word(printables, excludeChars=',') + � Optional( R�o" \t");�[�~Literal(",=� ~LineEnd() �p.stream�(1�@Item �SeparatedList = delimi�&( �quotedString.copy() | 7, default="") w� j���"""(Deprec�) Predefined expression1yUmore ` words��! s�Ds, s�1 by1as.HThisY�Eis d~� in favorp�L{pyparsing�1on.,_\�_list}.""# some o=gusefuli�Ps - uL� lower-case class nsince we are really0�t�Aas a)�rspace :� �:� ��&2HerQ���� on�Z-leve�that may be �in jump-starting @er d=� op;q� - numeric 6s (L{integers< �`>}, L{� s<���scientific notaR<sci_"�)�! -on L{programm�"id<�f� �%>}6�network addIe�MAC<mac_��IPv4<ipv4�6�6��ISO8601 L{dates<iso�_�c>} and�Itime����L{UUID<uuid��%a-o o<� 6�Parse acGsonvertToI}& �_Float�ODate� �� ��pHTMLTags� up\Token�Jdown�Example:�< .number.runTests('''=����# any int:�j�ber, retur{0as 3appropriate typeH�:100�-�+�z3.141599�z6.02e23�Z1e-12�@''')f���� �f� # any int or real number, returned as float �:100�-�+�z3.141599�z6.02e23�Z1e-12�f''') �pyparsing_common.hex_integer.runTests('''3���S# hex�s� �*FF!��fraction� %� ~�/�O-3/4�_mixed*� � w�1�1�import uuid_� ��.setParseAM(tokenMap(�oUUID))C�  �G�@��12345678- �- ����� 2� �<�prints:: �/# Uthe appropriate typeD� X[100] m[� � { ?� [� E� [�9+23'� [� "� e . "� !��uMz �9256<I[255�# :[0.3� Z[-0.7!�/# 1*1�t�, >.[1� [3/('5�2')]�4"""qconvertToI]5 = 3int1�� S for @�@ing  edp�s to Python�y�Fw�,y� s to Python f�loat """ �integer = Word(nums).setName("�"�ParseAction(convertToI@�)N�"""expression that p6�s an unsigned V�, return�7int�Chex_&��;hex�4hexK��tokenMap(int,16)� hexadecimalX����Regex(r'[+-]?\d+'5H-�V��O! pwith opal leading r��1fra@ = (+�$ed�(�FB) + '/' +c�8�X�~�"�7al B of9�divided by�� f�G�S�H.add�lambda t: t[0]/t[-1])6mix��F�+ |�C + Ov( � '-!up(,@�)��A or q�-.� !� of the form '$- 8�?', +�. ,e� 15sum real = RP\.\d*�:(�onumberR<�bpoint X�F andC$�P�Asci_��T([eE]|� �?)?)�^�scientific nota{�F z�� # streamlinAHthisbQmakesSdocs nicer-lookingHm�)R!| Y %).k�&e(0anyGericz��correspon@Pyth@7ypef�~K?\d*;����j"or�{��Wed asq�n-"idRalphas+'_', ����6�typical code "�$ (N��C\�bfollow0�more alphas, nums, or '_')""" �ipv4_address = Regex(r'(25[0-5]|2[0-4][0-9]|1?�{1,2})(\.%�){3}').setName("IPv4 n�"")� �a (C{0.�w - 255.�R})" 5�_ipv6_part���a-fA-F]{1,4z�hex_integery�R_fullI��B = (�Z�+ (':' + �7)*7��A�\ IPv6�b_short7�\�Optionale�(0,6)) + "::" + 9����.addCondi�"(lambda t: sum(1 for tt in t if pyparsing_common.��:.matches(tt)) < 8b_mixed(�q"::ffff��9�� M�Combine((�/| �/| �{� �� (long, �@form?mac�2}([:.-])�J?:\1�*){<MAC"�G xx:� (may also have '-':.' delimiters��@staticmethod�def convertToDate(fmt="%Y-%m-%d"):(���� �Helper to create a b@e acY�2ing�0d d*�0str�to Python�Ptime.�5�e�Params -�` - fmt�Pormat�be passed ��B�K�@strp � (default=C{�(})g�Example:��~��L�~_expr =@iso8601_%�c.copy(7�:�����>��QaParseA(')H�fprint(N�fSC("1999-12-31"8�4�s�[E��h(<�, 12, 31)]c  vt_fn(s,l,t��;try6��Wretur`(t[0],)� �except ValueError as veb�Qaise WE5� io� l, str(ve�c� �- T%H:%M:%S.%f;d datetime s tring to Python datetime. �S �Params -�` - fmt�PormatI�be passed �F�P.strpX� (default=C{"%Y-%m-%dT%H:%M:%S.%f"})s�Example::t� dt_expr = pyparsing_common.iso8601_{�ocopy()@�.setParseAction(M�convertToD+()J�cprint(�.�!eSU ("1999-12-31T23:59:59.999"C�?�s�[� �(M�, 12, 31, 23, 59�999000)]�6""" �def cvt_fn(s,l,t)K;try��Wretur`(t[0], except ValueError as ve[�Qaise wE5��zs, l, str(ve �� = Regex(r'(?P<year>\d{4})(?:-�month>\d\d�2day�`)?)?')Name("ISO="� � (C{yyyy-mm-dd})"�� ���@[T ]�0hou�@\d):�bminute�(�asecond�`(\.\d*� )?-�tz>Z|[+-]� :?������� �Thh:mm:ss.s(Z|+-00:00)}) - trailK�s, milli�@and Q�pzone opn`al; ac6s separatA�C{'T'} or C{' '}bGuuid[0-9a-fA-F]{8}(-�i4}){3}�812}EUUID�� ���x�-� �����_html_strippeanyOpenTag.suppress() | anyClose�@staticmethod��V�HTMLTags(htokens R! a�|premove E� tags from web pag�dsource�q#"ipN�ClinkO�nrl text ��E����= '<td>More info $he <a href="http://y.wikispaces.com">�P</a> ��k</td>'r�pd,td_en&@make�?%"T����ctable_�td + SkipTo(B�Q )("body") + A� � �(� 6�� ).N�) # -> '=  ?2�%on._html_str|ipper.transformString(tokens[0]) _commasepitem = Combine(OneOrMore(~Literal(",") + ~LineEnd() + Word(printables, excludeChars=',') h��l�� + Optional( White(" \t") �.streaml�).setName("�bItem")��_separated_list = delimitedList(j�bquoted!.copy() |, default="� }� l� l��"""Predefined expression of 1 or more p<` words��! s's,_�1by �Ts."""qupcaseT� = staticmethod Map(lambda t: _ustr(t).u"3())7��parse ac to convert 6��4� p��@down��_lower�4� � if __name__ == "__main__":&aselect��@= Ca�%ss��$ctEfrom.�  0��"��.�vPidentZ��!= alphas, �nums + "_$7�`column8� V�`, ".",bine=True�PA([�� = Group(%�)T����T��s���%�@Spec� = ('*' | ��3��b�St ��.� {�)[��q���%����simpleSQL��Qmmand����0 + /�1 + b�����!("�q�m�# demo runTests , including embeddedments in test H��.K�( �@ # #as and dotted� , �! *� SYS.XYZZY<�[�#rless match on "SELECT",`� ca�@back*"T�"e�-�e�a�Z, ABCf��B�"r��@`nd mixCase K�0key5c� AA,BB,CC�zys.dualh�multiplesD�[, B, C�0, T2K�{invalid� - should fail`�X�`� X� co!te�T�ST� # invalid column name - should fail � Select ^^^ frox Sys.dual $�D""")�pyparsing_common.number.runTests(""":�6100 �-�+�v3.14159-�v6.02e23�V1e-12��# any int or real �, returned as floatA� �f1��j �hex_integ_"FF��import uuid!� i��� .setParseAction(tokenMap(�oUUID))?� �2345678-1234- �����V���# This file is  licensed under the terms of �Apache L'�, Version # 2.0, and'�4BSD$�Q. See�sLICENSEq�n�Broot\�'is repository # for complete details. from __future__ tabsolute_�`, divi�, print_funo B�.__aboutB�(__author__, __copyright�Remail �' �rsummary �title__,O�2uri�v)__ ) __all__ = [(�3"__8�e", "__R��E� �G���"p�3"__�����_", ] #S abc �Dools�Xitert�%re9�$aty0strtypes, with_metaclassk2�2, Legacy��Ae ;�" IYSpecifier(ValueError):4!""�%Ans.� wound, users0refo PEP 440.C�5"""y�FBasev� � (abc.ABCMeta, object)): E�@�abstractmethod�def __str__(self�#�� �RAs st^presenta&#�S like�.K� beQE�"veE�&e D� it��� � �� __hash__(seclf): �5""" �%Returns a hash value for this Specifier like object.=��I� �@abc.abstractmethod�def __eq__(self, other� boolean representing whe=�� or not the two�v����s are equal�/ne�k���property��rprereleaseswp YDpre-?� aQwholeJallowed by r��ns(f�q.setter8��,�LSets�>rcontainU, item, �_=None�Determines ifQgivenE�C is \�ed within` X �afilter�_rable�qTakes a�:�1 of���"d ]�s�m so that only$�Qwhich��� [iw� G class _IndividualU(Base�1): y�_ators = {}��qe__init�`?="" match = �._regex.search(?�)q���!if0�m��raise Invalid�#("��: '{0}'".formata�)��I���w�E = (z���w�.group("�").strip(),-�version,�{�|# Store 'should accept��6) =(�)��V=pre� V{0!r}EGelf.q��8#if"������)���Welse > rI "<{0}({1!r}{2})>� H�___.__name__"st 6pre(��08str/ return! "{0}{1}".format(*self._spec) def __hash__(�!):���preturn ��9��#eq7�w, other>�if isinstance(�, string_types,��n�6try{�����7�0 = �.__class__N�)��*�except InvalidSpecifierS��NotImplementedK�elif not�<� �V�W����2 ==2U/neT&!Tget_operatorG, opdgetatt"�"_compare_{0CM�hs[op])Lcoerce_versionm��r�f$�, (LegacyVB�#, �)>��0� = parse(���b0@pr�!ty���c�>���?[0]D�c��C� 1C�prereleasesG� (��:�u.setter�-�U�w, value��(�" =$�]��!__containy�0�g, itemE�+,�($�F��B�', x�H=Non�# Determine if*� are to be allowed or.�� 1�0is ^� |�`���L�0# N<Alize��{�a�z� Bthis�@s us.�Ehave� # a shortcut for ``"2.0" in f(">=2"�L�_a��� 8 wen�0uld/supportingP1in ��4�Z,Pwe doh H� E�than we canr�rt circuitM�PlogicK�o�5 /K� ��F.is_A and��s return FalSse �4# Actually do the comparison to determine if this item is containedL�bwithin(�Specifier or not.(� return self._get_operator(�� )(k�,(�version)�def filte3�,� rable, prereleases=None):x��yielded = False�gfound_9�R = []j��'wkw = {"!�(":h����@not ~� else True}P�# Attempta it�e over allqvalues Ke�@ andl�eany of�#3�m match, ��qCfor A�T�s�6ble��tparsed_(�=xt_coerce�(��8���"if.�*s(M�g, **kw�4���w# If ou�7s a[,�pwe wereE1 se6Uallow�K���#;� s,n we'll storI later incasU�OhingL��V"ess[�w���;if �7.isT�=noth��=���(B"orP�)?��8� v.append�&��# Either�!isX vor we should have been�# acceptingzP from~ begining0�] ��7 t��'�#�XNow thatv\d]Pevery*g,Rwe've9 �h if��"we�+�pEd up�� will go ahead��}D�4!if&�e2�  L��.� S� class Legacy(_Individual�"):_regex_str = (�Er""" �D(?P<>(==|!=|<=|>=|<|>))(�5\s* ��4��>���[^,;\s)]* # SinceAa "l�%" �dM� L��P��P# strcan be just about an?"weo TO� ex#y whitespace, a semi-colon��marker support,P�`a clos�qparen s��#s � en&�Bed i  �%# them, and a comma since it's a version separator. 9�E ) �1""" �!) �_regex = re.compile(��:�r"^\s*" + '��_str + r"\s*$",4�VERBOSE | �IGNORECASE^�1ope�Us = {X�"==": "equal",�!�Mnot_�<�less_than!�>!�greater$�<v�D�z�>�=��}&def _coerce_fd(self,t%):�if not isinstance(2�, LegacyV3��l%�* =&�D(strA�)dreturn~� �Rmpare �prospective, �{�I�#�@ == �.�3peck�o�#!o��)<u�x�)>x��\#<�q�#>q�  8erequirI_wcare(fn@functools.wraps�_�?���?ped�/, QFalset���/fnv�+�'�� class Specifier(_Individual�"):b(= ��D(?P<R >(~=|==|!=|<=|>=|<|>|===%�/�W>��D���&(?�����# The identity g�s allow for an escape hatch that will]�M�!do/�xact string m5� of you wish to 1&ll�K�����!isk�\be parsed by PEP 440`we candetermin�I���# any semantic mean�from it. This�� is discouraged��but included =qrely as�.�@(?<= # Only!�j�the identity operator �=\s*�`[^\s]*)�"# We just match everything, except for whitespaceL��F�� # since we are only testingE�strict identity.K�)�|�9(?:��o�# The (non)equality opqs allowu�wild card and localL�� versions to be specified so�@have�define these twoJ���separatepo enabl;�*at���(?<===|!=)��0# OC��s�Bnot � �-v?'�(?:[0-9]+!)?s� # epoch.�+�R(?:\. �)@# releas6(?:U� �_# pre4��'�n[-_\.]��� (a|b|c|rc|alpha|beta|pre�JviewD�2���R� � )��?ost� A(?:-g�0+)|s�(post|rev|r)�%�*�.)?# You canjuse a a dev or  # togetherPgroupm with a |m0makem optional�~�:dev�v#�KG�a\+[a-zU��b)*)? #� ��A� R����@\.\*W&syntax of .  b�pcompati- requires at Pt^ digits in �| segmenX~U � XOthe ��wZT+�a (We a + instead/a .�x� # post release ��(?:-[0-9]+)|(?:[-_\.]?(post|rev|r)�%�-*)E�-)?�H�:dev?�?�_# dev� e�|`�9(?:��P�&# All other operators only allow a sub set of what th�# (non)equalityK�do. Specifically?�y do notc���local versions to be sF�`ed norB�4the�the prefixN��matching wild cards.'�(?<!==|!=|~=)�# We hav~�al cases for�;� �#so we want�make sureP�y� F� �# don't �} here. ;�=\s*�vr)!)b]epochA�b+(?:\. �o)* #��0(?:� �#4��-� ��� (a|b|c|rc|alpha|beta|pre�Jview�2���R� �.�M�� # � =C1""")a_regex = re.compile( ��r"^\s*" + '��_str + r"\s*$",4�VERBOSE | �IGNORECASE^�5= {X�p"~=": "p�atible",�=�z�!�Mnot_�<�less_than!�>!�greater$�<�D�z�>�=��=�arbitrary�}^@_require__�rqDdef �� (self, pro"Qtive,,)b# Comp<s0an s�valent combination�>= and ==. Thatu`# is t P~=2.2�E�@to >�`,==2.*;�"is0s uH�Pmplem{�this in terms}����Pifier!�stead ofE��it ourselves|�et`e needy do�construc� # the other� specifiers. �# We want everything but the last item in�version,"�w9�'toN� ignore post and dev releases�6�R treai�Cpre-&�8 asO� t's own separate segment.%�prefix = ".".join(���Jlist���itertools.takewhile%��)�lambda x: (not x.startswith("�!")�9notw��<� � <�dev")),5�_hp_split(*��)<�e)[:-1]�)1Add+notation to�end of our stringF�1�+]&*"S�return (self._get_operator(">=")(pro�Qtive,y&X�@�=@��)�@_require&qcompare^�Sdef _�a_equal�., �:1���Aneed�ial logic rhandle �P matc":�!if3�C.endF.*")Z�^�I>@casei M� ?^local�N��B = Vpz.public0# SK� out by dots,@pret "th@re i implici#:��between a�U�a9 ���%= [:-2]) # Remove�Ptrail&.*�H��$K�P� �� P���(tr����# Shorte^J��Bto b8same length asK�z �� atcan determine if3�C��{o� K��Wor no��(�=R[:len]1Pad�two sides  zeros s�they both �"am,����#T��� 7t = _pad� !�sLelserConvertg3peclt into a F��������1# I}@doesg have a local se gment, then we want to �# act as if(� prospective version also does not have a localK�!ser�.�!if7��V�.5�:���u�2= Vw�(�.public) ;�ireturn�0== e�$�@_require_�_compareB�Ddef �_not_equal(self,T�,R�)�w���-�.E�A��;��less_than�|�& <F�8greater�.>�-# Convert ourT to aQ instance, since we'll work with"�1# ia �V �9�PCheck~�?see[ 0is � �Y��. If it'we can short circu�nd just False nowN�� ead of doing extra unneeded� XV��p���a# This/�ial case is here so�St, un�e)�pfier itZ �`cludes@�a pre-releQ�� at!dolhaccept+�O�5�Qs fors� -ioned in��i�(e.g. <3.1v7uldP�� match 3.1.dev0, but)� �0�)_�e�t.is_pre�8and � }$if /5bas:) =.� P�� If2ve gotten�,&Qmeans�8�)boZaj-�V*and* o2sam��#;�i�BTrue$ # Chec$k to see if the prospective version is greater than(��%�# �#+�-. If it's not we can short circuit and just return False nowN�instead of doing extra unneeded work.0�!ifn�� > �:#���p� �a# This/�ial case�phere so�t, unless�ifier itselfI�includes@�a post-releR�J,P��!do�gacceptD�6�@s fozmentioned i�K�(e.g. >3.11uldr�match 3.0.k�d0, but ��2�)c�U@.is_;���{ � Bif VT(3�Sbase_#E) ==%�p� � P� mEnsureqllow a local�h�� _N ip, whichtechincally(,[T I��i/JNone�0Y�If we've gotten��, it mean/at Gboth./oV*and*'Ua pre+oL�6samUBTruedef _compare_arbitrary(,�,)uJ�8str).lower(����s�@property���3pre$sz�g�#'t_�@an explici_5�C set is: en!ll?g���# blindly us0if �'._��r��n�9elf2��l�Look at all61ourC|sdeterminRay are Gsive��0aators,9�/� �W�)G���[�,t= �=�4if *��J["==", ">�<�~�V==="]' 0The�R���de a trail�0.*,^it does wH�@wantoremove before parsing��-��0== �<.endswith(".*"q�<���(�n = version[w:-2] �# Parse the version, and if it is a pre-relea(�{an thisF�specifier allows5�)s.-�@if pt�(p�).is_prec�:-���return True��CFals�@D�s.setterK�0def�_�s(self, value)m���.�2s =$�0 � fix_regex = re.compile(r"^([0-9]+)((?:a|b|c|rc)�`$") �_�e_split��result = []�for item in.8�7"."�match = �.search(A�)O��E1if .�q�����y�.extend(!�.groups()<�Oelse8�0app8�j�W��4pad�(left, right���� � ,�Q# Get� segment of our'T�.�@listrtools.takewhlambda x: x.isdigit(), B�)��O�%C��P� �s�qeft[lenC�b[0]):]b����3� ��4��aInsertBqpadding���0�!.i"�(��3%1, �["0"] * max(04+n(j�> - �)B��k����j� �k��� vchain(*Y�)@���,�p�-��tclass SSet(Base�"):s_init__JXs="",H=Non0# SL on , to break each indidivual P� into it's own`��s# stripB��to remove lea/trailing whitespacek��=1[s.O�0() s!�0,")k,�d�individ�, attempt�Pfirst@makea�y1fal�@back2�a Legacy&��d = set(�+� � ):try��>�U�U.add(s�(v�)���except Invalid0�V� �ier(specifiecr)) �8# Turn our parsed specifiers into a frozen set and save them for later.P�`self._D�3s =:�Bset(]� y�RStorez�rereleases value so we can use it g� to determine ifv�#.�accept pM�uor not.(��"�=0�def __repr__(2�%):A�upre = (��F(",D�={0!r}".format@�.q�);�0if a�'._"�0 is�Y None-�uelse ""�M0ret4"<SASet(�V{1})>�!tr�)�B��/st��Y�,".join(sorted(sG�)��&�]U�NhashFV����1 �3and9�w, otherif isinstance(�, string_types,��"�9 = �AelifxZ�7� Z��NotImplementedG�y��L }�x�#� 6�#�2s |'�,�e�E�A�d�M��l�� 0�=}�;������ c�� =�m�0*seE�praise VZError �W"Cannot combSs with True( FaJ �K���"overrides.�2eq_\XX_Individual ` =�~�)G�bg�\�;Set_�$�x�I&s S�U/neU other = SpecifierSet(str(�C)) �elif not isinstance$�,<�%):2��9�return NotImplemented #��self._specs !=��,�def __len__(-�f�C�1len�7�)8�Oiter9���:��@property���prereleases0��# If we have been given an explicit ?�A modk, then we'llg��2 # pass that through here."�0if &._S�As isONone 2�!r��Rdon't�@any �`s, and�"� forced value,�#�c just ��f sinceJ�know if this should�N�Dpre-w0 or� ����s��{��O0wis�p'll see���o�e�R�z accept��,=�Bm do�RTrue,v�GFals!hany(s.for s in��s@(�q.setter�,1C�" =$�&�E�__contains:g, itemE��L�,�($�F���&�B�,  s=T�# Ensure1ouru��a VersiondLegacy� ��9, (9�,S�)���-� = parse���# Determin4Qwe're Wing a���1not&���51ingO�!on@�particular filter call( uphateverlK��P�0nks�@ whe��lhsupporsE"0is  a!�=��We can d= go;to allowBrby look!��punderly*��#s ��J0em.nk�O���;�nx�f����$it7canL� shR`circui+at#@e: T@mean�at 1.0.dev1 w�j�3be B!edZometh@�_ like >=D�qabc how##itQ� beC��>=1.0.debabc,>0.0.dev0 �if not prereleases and item.is_�:3��:�return False �"# We simply dispatch to the underlying specs here�pmake su �0hat,�P�given version is contained within all of7�'m.9�Note: This use"�Rall()v�pmeans to�an empty set&���gifiersM��� will always �pTrue, tf�i9 explicit design deci��:���b��`�#s.� s(},=)s)6��for s in self._��)def filter(&�,Zrabled�VNone) # Determine if we're forca�0 orC,&��Q*��A# on@�.particular�P callK enl�!llwhateverK�ASpec Se1@inks� whether� we should suppor'if�se�  �" =m�h�(�0# I, have any�s�P wantwrap our�7the�q method�@eachL�O�#is ct as a logical AND amongstM�;��#� �? �a0pec�%���1iteU�Bpec.��� lWbool(A)$S��^ dore @needec roughlP�RwhichE�A outDpre-p, unles3�are no finalL�.��BZ�tLegacyVn generalKelseued = []p��tWfounds#� $�`mQ `��J�F# En�9ome kind�Bclasj�% m��K�RisinstanceIm, (�#, U�)t�?��tparsed_!= �L� -�1�5����6�G��]�#���1# Ff�'� "is|�dd ��� ~�), <���7inuW����b# StorX �'Slater we've  �2# already found a final version or we are accepting prereleases K� �if parsed_B�F.is_1� and notD�:E��J�!if(�filtered%��)��c�s.append(item)\�OelseM�k� @� A�# If we've/0no g�@s ex@ for�- `, then3�[ll goM�Qahead0use*� <� -� 5� ��ms is Non��breturn�< u�&� # This file[�dual licensed under�terms of �Apache L'�2, VYq # 2.0,�tthe BSD$�B. SesLICENSEq�nP�Broot\��is repository #|#complete details. from __future__ import absolute_�`, divi, print_function class Infinity(object):,def __repr__(self)^@";�"3�Ohash3���(U�S�)9�#lt7�~, otherq�YFalse3�e3�/eq3� isinstance(� , �1.__0)__�n��S�g9Trug� 2�3negfNegative$ �& =.)A 0�I -b�JU lBH PI 3�J , $< = �/()"Apache License, Version # 2.0, and the BSD License. See��LICENSE file in�Broot of this repository # for complete details. from __future__ import absolute_i�`, divi�, print_funct�! i"� operator�s �platform�Bsys x� setuptools.extern.pyparsing�ParseExcepn�!, �Results, stringStart �?End]�ZeroOrMore, Group, Forward, QuotedSa�Q�Literal as L # noqa� ._}$at��b_types`�.specifiers%�S�, Invalid� __all__ = [ "$�Marker", "UndefinedComparison�EnvironmentName",H�A�default_e)�", ] class�1�(ValueError):J�!""�BAn i�! m� was found, us� should refer to PEP 508.@�5"""s���y�1ion|�attempted on a v� that doesn't supp /it� A�[ name{�Pto be��{� not exist insidee�Node(object): 0�def __init__(self,��5��.�=�;�3str:�3�`return}T�>�)7�?rep8��"<{0}({1!r})>"."atJ�!__WP__.__0!__�)b�serialize�m��raise NotI�!ed?Variable(/(T� �)K�/luH�x'"{0}"'�S�/Op�*VARIABLE = (DL("i aB"_vaD") |"�p_python le<2�*� L���@�Ofullh� yrelease;�%8� omachin8�isystemS����Dsys_�2�!osv �.��tPEP-345:Hsys.I�#���.�'� L("platform.machine") | # PEP-345 L("plat'�python_implementation5�,� `undocuC�ed setuptools legacyx�extra") ) ALIASES = {��'os.name': 'os_ �,�Dsys.���Esys_�$��.version(��_� ,�$ ,�� ,�) :�"�H�<?� } VARIABLE.setParseAc (lambda s, l, t: Variable([.get(t[0], �))) VERSION_CMP = (``L("===��>�<�!�~�>E�< MARKER_O~��|Rnot i}0L(" �0�� !Op���d�VALUE = QuotedString("'� �D'"')i�5�l� UValueo�ABOOL�aL("and`�L("or") W�DR = 8 | �&�ITEM = Group("�4R +/�&OP �5VAR��9�� Ftupl�LPAREN =w(").suppress() R�)��0EXP�Forward(�0ATO����# |�q��C�"+ m�A��$<<�P�+ ZeroOrMore(m G�gA = sVStart+V�+�End def _coerce_pT_result(�1s): if isinstance�!, R1�*��Xreturn [Y�i) for i in e�]d�Belsen�D�"���at_marker(�, first=True�hassert�+�q(list, , `_types2�y�# Sometimes we have a*� ucture like [[...]] which is"�ingle item e��# where the s!�is itself it's own4�. In that case�want skipO��I�rest of this fun2 so:�we don't get gneous () o]�eJ�outside.�Gif (.��) and leno`) == 1�:��3�� >�po#))�/�#_Q[0]) ]� w �*PinnerM�at_marker(m, first=False) for m in marker) �"if)�:���return " ".join(inn5�Oelse1�L(" +7���!)"`�elif isinstance(�, tuple)S� �[m.serialize(�]� �C�b� _operators = {�"in": lambda lhs, rhs: ��*Brhs,'�Onot +���;�/�D<": m�4.lt�=�e�=�#eq�!�n.�>�g�[�gt, } def _eval_op(�!op�h6tryqspec = Specifier("8[op{A�#])qxcept Invalid<�V�ApassC�t�.contains�!) -��<6 = Z.get(��!ifiw is Non raise UndefinedComparison(b����""� {0!r} on {1 �and {2!r}.".forma�,��C��n����%�D _u� = object() get_env(environment, nam value = � �#�&, [��2if 2�'is� Ev�KNamePdoes @exis Qiuation�&����I�"e_s (s,X�PgroupB[[]]%�D��oassertkS(listr�, string_types)H��;���%����[-1].append(t<uat� �$�n�# =���� �1�iVariaba�*���Alhs_�qAlhs."���9���r=�r'� a �4���u�_� 8��&�^�_�t��:��#, ��>��Me�o["and", "or"]�#if1 ==��\����.#[]�Bany(all(item� ��u�8�= _full_version(info): version = '{0.major}. �%in �cro}'.format(info) kind = �.releaselevel�"if �!= 'final':��9�"vet�!+=$�[0] + str\�r.serialc�sreturn 1� def default_environment()^�if hasattr(sys, 'imple"�cation''���river = �c_full_g��;�.9�.��?� Y�_name = sys:����Belse�@��1'0'��S�1'' "� { ��/�"��?": ��,4���7�7ver(�$osP�0os.��@plat7_machine": �.�/()0�%0��0�hsystem/��.���� 0�Yythonb�p�:��$� jE�� !��g�<���g()[:3]MDsys_�!":q�&� } class Marker(object):G�A__init__(self, m(�6try�k�(�"._(�s = _coerce_parse_result(MARKER.�rString(2�)6except P8�E ��|7as �q�`err_st"Invalid�: {0!r}, g� error at {1!r}"�L�����q[e.loc:�V + 8]��-�craise x�E�)E3strD<_!#at4iA E�?repF�#"<��%)>��-�)L�evaluatem�', W=None�C"""E-�# aY.���Ruthe boolean from a�@ing �Sgiven>� against�}�.� is an oppal argu to override all orL�ppart of`� determinedV��8The��p�4����current P process.t�5""" �,�t/ =4�,if�@not  ^\��@.updC�defsg/, Y��) # This file is dual licensed under the terms of �Apache L'�, Version # 2.0, and'�4BSD$�Q. See��LICENSE file in�Broot\�8is repository # for complete details. from __future__ import absolute_i�`, divi�, print_funct� 2�re _canonicalize_regex = re.y�ile(r"[-_.]+") def 1�Pname(�): # This is taken �PEP 503."�return x��.sub("-", Q�.lower() T�4Os duQcollesitertool��ip._strucsInfinity_all__ = ["parse", "� �gLegacy�wInvalid�VERSION_PATTERN" ]]�!�7 = �.rdtuple(t�_(�!",�p["epochz�Rrelea�0dev�!pr�@post�local"], �"(v1"""Y�P�acgiven &�q stringeither a :class:`�` objectO�o!� $'�p depend]�Bon i- |�!isL�!a R 5440�d�l�4�2tryg�k��b�zexcept  ;� �A�!  >�(ValueErrorjBAn i$� was found, users should refSo��u�T_Base�1): ��}__hash__(self� ���h._key)8�#lt6�0, o=��S� ._Aare(%�, lambda s, o: s < oV�eV�2=W�/eqW�1=W�g�2>W�[2>n�2!�� , method):  �if not isinstance(other, _BaseVersion): .��return NotImplemented #��method(self._key, Z� �) class Legacyh�(u�S�def __init__N�=, v�f��s = str(�)F���%�key = _ly�q_cmpkeyX�%._2�3�y�3strx��Q�6�5�?rep6�*"<�{0})>".format(;�(��]�2)))W�@property�apublic��B�Dbase�H�)_localA�ONone�is_prerelease@�OFalsA� ?ostB� _component_re = re.�Aile(cr"(\d+ | [a-z] �\.| -)",+�VERBOSE, ) Y�areplac_map = {R�"pre": "c", �Eview�- �`final-� rc�*�0dev �@", } `6par_parts(s@for �5 in�e.split7�� 7�6� �P.get(+�,h��@�L�� �j== "."@scontinu:��6�@[:1]�"0123456789;�`# pad �numeric aarisonf�N���Qyield�.zfill(8Jelse�.�Q"*" +4�# ensure that alpha/beta/candidate are before �N��" q]# We hardcode an epoch of -1 here. A PEP 440 can only have a4��# greater�nequal to 0. This will effectively put the,O�which uses$�defacto 2dard origFly i by setuptoolsL�$as2<all�!s.r��D= -1�scheme is taken from pkg_resources.~� prior to`��# it's adoptioni��packaging library��as = []=��~����} .lower()�!if_0.stwith("*"!��%�# remove "-"+ +A tag��-���V�R < "*t �$�while parts and p arts[-1] == "*final-": ��p,�y.pop() !�%# remove trailing zeros from each series of numeric M� F�Rwhile�B and ��0���K� ��pappend( �)m�� �s = tuple�s�return epoch,}� # Deliberately not anchored to the star�Pd end��Pring,$�make it # easier for 3r�`y code'� reuse VERSION_PATTERN = r"""�!v?�&(?q(?:(?P<�>[0-9]+)!)?��#�J����?�sreleaseA�S(?:\.L� *)$� ��0� segmentL�Jpre>0�� c# pre-�H��2�b[-_\.]�������pre_l>(a|b|c|rc|alpha|beta|pre�Rview)�5���M� n�)l� �s�?ost�# post �D(?:-Q�4_n1y� �|�������[� l>�j|rev|r]��'�?�$n2��9�K� !?dev o # dev ���dev_l>dev���/� D��+\�local>[a-z>2(?:W��5)*)Q!# /� version  class V�c(_Base �"):'`_regexe.compile(r"^\s*" + + r"\s*$",-� e.VERBOSE | re.IGNORECASE$�def __init__(self,�)=# Validate�zs into pieces�match = X�.�.search(D�d�!if33�z���raise Inv�0#("���: '{0}'".format`���H�b# Stor�parsed out�����D = _�"��[�WQ=int(�.group("�")) if �r else 0�H���=w�T�!i) Ji inG�+�").split("."))N�Qpre=_�_letter_�W�u��� �>�"),  �match.group("pre_n"), �� � post=_parse_letter_version(7��?� ]�\ost_l^�'�n1") or A�,n2B� �?dev�"?dev��&�" Ulocal�� �" �(�'")�%) C # Generate a key which will be used for sorting8�`self._1�= _cmpkey!�j.epoch !�release#� /pr� ?ost?� ?dev� &!�#def __repr__(�%):return "<V{0})>".format(5�B(str7�)Q�/stP��parts = []E:t�0if �.YV != 0��M�.append("{0}!�A����:�2# R segment}� T�q.".join�!x)%Kx in� a�CPre-�]� ��pre is not None� �;pre�?ost�?ost�.?{0}k��:[1]�pDevelopi ?dev�?dev�=dev�LC   1��a��("+�"Lr�)))M�W�T��@property<��bpublic[C�.split("+", 1)[0O�Dbase U��="".join(parts)  @property def local(self):���version_string = str$�#�if "+" in -�E��I�\retur#�.split("+", 1)[1] V��is_prerelease�_�[�2boo�#._�.dev or ��Opre)h� ?osti�post) H_parse_letter�(�, numberb2if ��# We consider there to be an implicit 0oca pre-�3 if.�!isE�up# not au� eral associated with it.,� if'�ber is None��K��B = 0<���normaliz�y�s�their lower case formo��# =2�.(�(]� some word[��lternate spellings of o2)�5ando�#1Qthose�s we want��(thO�`to oureXferreM�t� ?�= "alpha"B�E "a"�%el == "bet8�b8�in ["c", "pre�oview"]�/rcJ�0revE�r?��"�b, int(.)��Y#otC andh�H`assumewe are givenber, but����w�j�7then this us�<�� 6syntax (e.g. 1.0-1��K�Z�@ = "3��1 _H_seperators = re.compile(r"[\._-]"7�>�(L�-"""pTakes a��like abc.1.twelv d m@s it`o ("ab!B1, "%�"")U���z��4�^ etuple(k�$Dpart��<��isdigit() else�(�^�>�@for ��8% }�7cmpkey(epoch,, , b, dev,J0# W$wi mpQa9�,k!��&�"it70alll1the�`# trai zeros removed. So we'll use d��e list, drop O��3nowP�@leadO�Puntil�c0to  th!�1nont�,T�Rn tak^�CrestL�#�verse it back into the correct order and make it a tuple�use # that for our sorting key. �release =<�(��9�reversed(list���itertools.dropwhile!��%�lambda x: x == 0,Z�����b��)#�)1�) �!) �# We need to "trick"�algorithm!�put 1.0.dev0 before�"a0��M�P'll d\is by abus#�lpre segment, but we _only_ wanta�:�� if�re is no�C�or a postM�@. IfL�have one o8�0ose>�nL���enormalrules will handl0�@is cl0if {�@is Na��(��4dev��%�:y���:�= -Infinity�# Version�Cthou�- (except a�ed above) should�c afterO� th�@with*el� ��D��h |�w��u��7�v��� x�pdevelop, �� ~� ��*= �if local .�,� ��9����Felse r�# a�o��� paS�7Pimple,Q�\��e&�~in PEP44'��- Alpha numericms<� �g�@� lexicographicallz�Nt�m� .�Shorter J9��Hlong�@when�Wfixes� match exact� (i, "") if isinstance�Pint) % (2, id����for i in�return epoch, �,�,c, dev,<�# This fildual licensed un�Rtermse Apache L'�,zq # 2.0,�4�4BSD$�@. See LICENSEq�SBroot\��is repository # cote details. from __future__ import absolute_�`, divi�� int_function __all__ = [>"__title__", "__summary�4uri �-�"__author__", "__email__", �tlicense�copyright� ] __title__ = "packaging" __summary� Core utilities for Python 4� es3�2uri/� https://github.com/pypa/-�a� __version3�P16.8"�bauthor�Donald Stufft and individual contributor~����d8�!@s8�1.ioY� �"��BSD or Apache L&2, V�@ 2.0�/�5�C> 2014-2016 %s" % __� # This file is �{�d under the terms of �� #�,��4����Q. See<�sLICENSEq�n�Broot\��is repository #complete details. from __futur import absolute_� , |�, print_function "�t string�2re [�setuptools.extern.irsing :�cStart,G�End, originalTextFor, ParseExcepz��`�ZeroOrMore, Word, OA�al, Regex, Combine�Literal as L # noqa=�six.moves.urllib�p��B�1url �2.markers(�MARKER_EXPR, M�k�.specifi,�tLegacyS�/, �Set class InvalidRequirement(ValueError):Y!""�BAn i/�& r0�0 wau us�should refo PEP 508.E�""" ALPHANUM =(=.ascii_lettH�+ .digits) LBRACKET = L("[").suppress() R�]�bLPAREN8�(�R�)�RCOMMA5�,�SEMICOLOS�;�A�@� PUNCTUATI8��("-_.") IDENTIFIUND = "6| ((B�5) +&�A�$ =(E�'+ D� l�)) NAME = �("name") EXTR�r URI =:(r'[^ ]+')("url") URL = (AT + URI) C�PS_LISQ� �f!+ �s�SE�+(%�N�� )("extras") VERSION_PEP440� 0._r_str, re.VERBOSE | �IGNORECASE)I�eLEGACYI� fO�P� ONo �$^ �o�.�0MAN|�(&�N_ONE + ZeroOrMore(COMMA + VERSION_ONE), �joinString=",", adjacent=False)("_raw_spec") _S� SPEC = Optional(((LPARENv�MANY + R�5) |���)L�.setParseAcR�(lambda s, l, t: t.� or '') �originalTextFor(�0)("�yifier");�{�[1]) MARKER_EXPR = m��())("markj�� i� �M9�d(s[t._e�x_start:�tend]) )�SEPERATO�SEMICOLON�3 = �&�+���JBAND_,�% =+!�i) URL_1�OURL (�� NAMED_REQUIREMENT = \���3�EXTRAS) + (^�>s�:) U�sS-0 + ]� w�"+ "�End class Requirement(object):�1"""F a r$�!. ��Xgiven �b� into its parts, such as name, URL, and extras. Raises Invalid� on a badly-formed}���. �2"""�&# TODO: Can we test whether something is contained wi� �?V�#IIf so how doV�do that? D�rneed tom�against the _I_ ofN����r�g'@well���version? What abouG�cs� �normalizeq��p�`?def __init__(self,P_L��2try� ���greq =  .pQ(9L���:�qexcept JE �i;s eb��  �(J��N���"0�,se error at \"{0!r}\"".A.atH��L��q[e.loc:�r + 8]))D�/��;.g=~� ��!if�:url�*d_url = url�. ��=� �)H��i�if not (,�<�q.scheme�pnetloc)-��G�0�F� �J� ���r�#"�/�0req��;els-�ENone*��extras = set(req.extras.asList() if r� else []) �self.specifier = S �@Set(:�� 5�Amark2��%� �m��m�QNone o�def __str__(w�!):���parts = [�b.name]4���1if ��5���9�.append("[{0}]".format(",".join(sortedt�N))))a��d�2strI�-�J�?urlD�e"@ {0}��?urlI�JL� ;L�5�O�return "6?rep�7�<Requirement({0!r})>�#)) # This file is dual licensed under the terms of �Apache L'�, Version # 2.0, and'�4BSD$�Q. See�sLICENSEq�n�Broot\�8is repository # for complete details. from __future__ import absolute_i�`, divi�, print_funct� 2�sys PY2 = sys.v�_info[0] == 2 PY3� 3 �lake8: noqa if PY3�string_type,Pstr, c�Bbase1�@, �with_metaclass( �1, *(�1"""Create a � /� >�0 a 6��.*�2�r's;�ipexplana):basic idea"`to makk�QdummyT�#e�one level|� instantiX�P thatlaces itP�O��s0act �N�� �]�6__new__(cls, p, this_Gs, d/��3�2�S�(.�)�� ��.[��-��P, 'teoAary_�', (), {})f� VendorI2�2terA PEP 302NS path!erWfinding opaally-vP�!ed�or otherwise natur$�{lled packages B�w_�G�DCinit%, +�$, r�:� s=��P_pkg=;`�.=�& =I�j��#�B�"edU��o:et(� ��t�# =� �&ord�@.repb('extern', '_9�'K@propert��psearch_~6���S'�a first&X�c��0n aW�. """  � yield self.vendor_pkg + '.' !�2 $�1'' �def find_module(<�, fullname, path=None):0��F�5""" �aReturns�U when;� starts with root_Q� and the@�rtarget ~� is one �e*�rough this importer.=���c�, base, U�=�.partition�.-��)R�!if����r�$�not any(map(m�.���,!edh�'s)@T��c�9�?loaM�Iterate overfq searchp to loc���\��N��%R/for prefix i(.�_[ i:try��*extant =F�+��%���"__"2__(4�����mod = sys.q"s[*�]M�$�0] = ,�# mysterious hack�# RemovereferenceBthe � package/�g�� on later Python versionsH�cause relative-sE��!in�dt��B�Sresol�@same�?uleD�as those going th �z��!if{�_info.major >= 35�4�1del5�r�� �except I;^Errorg�6pas�Jelse#�XraiseB�(b���r"The '{ %}'Uis required; 4�3���"normallys bundled5 so if you /L��.�warning, consultC�1r oA�r�distribu#@.".f�@t(**2Jls()K)qinstallW#��rer into1eta ��Y`lreadyOsent�L@elf 1��X�I� �r.append�0 s = 'six', ',1ing �Qypars �! VOHAer(_A__, B��, 'setuptools._\4').) CHANGES.rst LICENSE MANIFEST.in README�bootstrap.py conftest �Seasy_T��.py launcher.c )msvc-build-launcher.cmd pavement.py pytest.ini setup.cfg �py towncrier_template.rst tox2�docs/Makefile �@confX� �developer-guide.txt&����easy_install+�vformats�vhistory�Vindex�pkg_resource7�vpython3(�hreleas#�arequir9�vroadmap9�(Gtool%� !s/�sidebar.html�_theme/nature/ �.-�cstatic,�S.css_8 E�'�0pygIs)� �/__init__ �@api_� �py31compa"P/_vendorZ�"�~appdirs{�!�pyparsing#�?six��!ed �c��ackaging/__abou -�7,��* p�Pstruc� /�_markeA +� ��specifi^�Outil�~versionoextern5 ��&�_find_distribution���)� s/�_F��$� =�*�Y f&�working_seB1 ��archive_j���[_meta�cli-32.exe/�/64�� �Aonfi{m�?dep�adependh-�,is��n+�[glibc�Lglob�u�Ngui-�<gui� T�lib2to3_eJ�kmonkey.��3 �pnamespaM(pykO!e_ 5�pep425tag5Fpy272� u �32�6�ols/sandbox.py setuptools/script (dev).tmpl��ite-patch.M�sl_support�unicode_utils�{version�\wheel�oindowsd�.egg-info/PKG-INFO��SOURCES.txt �dependency_links)�entry_point%�require!�top_levelh�zip-safe�/_vendor/__init__(�pyparsing �?six�`�+ed�y�pycache__�cpython-36.pyc�7� 77���i� 2�d�packaging/__abouV*� )�\compa(�pstructu2 [,�lmarkerM(� meU� specifiX�~�(�(__B� B��' A��4�& @���&D���%C���>�@�" @� �vcommand /command/alias.py setuptools/command/bdist_egg � ?rpm � wininst$�uild_clib!� /exA� /py?�develop���Oinfo �Peasy_�?all#�?gg_B�=� ��dE�_&I�oscriptlauncher manifest.xmlpy36compavregisterorotate�_saveo�sv;�Oetop�t�ouploadU��L_doc8�extern/__init__@��p�s� mcontex:�environmen� �Lfile��Oxtur��mod_with_consta]�namespacE�H-H�<-bo�Mserv���_archive_uti=� � s/�_e��#�$ $�' #�Ometa�*�!_bk� N���\confi �?dep� odepend�I�_���"� �N#�&�"�find_packagI�-�o_glibcu �B��integrationN� G�?msv� �H��_index�pep425tagosandboE�����/� �tests/test_unicode_utils.py setuptools/test�_upload_doc%�virtualenvI�_wheel�indows_wrapperm�/xtC� xt:��cindexe� links_priority/external.html;� simple/foobar/*�F�>pmanual_ �.py[console_scripts] easy_install = ~.command."�Y:main4�O-3.78�b [dist^�s] aliasC��:� b<�O_egg+��: �3�?rpm3� 3rpm3�3rpm3�0win7� #�;�� build_clib<� �:+�6�?ext5� 3ext4�3ext3�/py2� #py1�py develop/��:� jOinfo/�@ist_�:)� 6� G �A eggO�8��:'� �:�-��9e�.�&�?��H�C�5lib>�5lib9�r�=�%�A�� register>��: � rotate.��:#� saveopt�: � sY��:��/oprsetopt:� P���:� &��:�*�(/� !�4� � _keywords] convert_2to3.��� 1�@:ass'�string_list dependency_ �6�eager_resourcek�entry_poing�hcheck_%� exclude_package_data��:�%� extras_requirhn�'�; inh�ata = setupt ools.dist:assert_bool install_requires = setupt/�Tcheck!�ments namespace_packag8�Cnsp %�__dataa�%�2��.�s python�1�specifier �1��test_loader�importable /�Orunn/�_suite]�R�#�]�s�1� �use_2to3.�� '�_exclude_fixerT6�string_list =�5�zip_saf�c� [egg_info.writers] PKG-INFO�command.0�:0�2_pk?� dependency_links.txtB� BoverF�3argA�8�Rwarn_p� s_obsolete eager_resourceH� �entry_point=���5�/ie�X|�1�Hop_levelx��1top1�_t1 [ation] eggsecuCasy_5�:bootstrap e� +-n�� https://files.xhosted.org///c/certifi�'-2016.9.26.tar.gz#md5=baa81e951a29958563689d868ef1064dw�Pw/winz�Ystore �-0.2.zipx�ae728f2f007185648d0c7a8679b361e2 [F� ] �Uifi==�� sl:sys_platform=='win32'] �==0.2 Meta-Version: 2.1 Name:n � 40.0.0 Summary: Easily down, build, , upgrade, and un�! P  Home-page: github.com/pypa/^ Author:F�PBing �3ity#�-email: ]utils-sig@!� License: UNKNOWN Project-URL: Docu,�� .readthedocs.io/ Descripp: .. im��img.shields.io/pypi/v/setuptools.svg �:target: https://pypi.org/project<�8� �.. image:@�readthedocsG�sH�/badge/?version=latestU��� ��b�%io7� ���img.shields.io/travis�a�`master"?label=Linux%20build%20%40%20T>�U%20CIt�= �f�#-cO(ypm�:� ��appveyor/ci�}Windows�AE�x��4ci.m�E.com p�/branch/9R� ��codecov/c/github�V��H��,ghE�:� ���3/py� I� �See the `Installation �0ruc �s+�<k�ackaging.python0i@�ing/>`_ inW�P!�$ P2�M�User's Guide for @�s�1 on�alling, upgrad �`and un-��Q�S+� �CThe  is `maintained at GitHub �A 95>`_T�!by�`y� Developer5�U�3orgHteam%-dB�E>`_.l� �AQues comments should be directed to�distutils-siB0mai[R list�0://�Ppiper�/E���Bug reports�especially ed patches may be�`submit���1��bug tracker/�/issues:I�Code of Conduc-�0� �Everyone interactingh0's %qbases, ��%s,T�chat rooms,>�n�W��s5exp`follow@�k`PyPA ��@www.�`2en//�R-of-c  Keywords: CPAN PyPI �q eggs pe manage Platform: UNKNOWN Classifier:�*� Status :: 5 - Proion/Stable Classifier:$ Intended Audience :: Developers Classifier: Licens"�OSI Approved2�4MIT� 3�Operating System,�OS Indepx�)nt/�Programm1�qLanguago�`Python=�20�/.72�30�/.42�52�62�PTopicSoftware@ment�Libraries �>jModuleI�`Archiv:: Packaging�6�s Administ/on6�Utilities Requires-��: >=2.7,!=3.0.*�1�2�3.* Description-Co&t-Type: text/x-rst; charset=UTF-8 Provides-Extra: ssl�certs #!/home/circleci/repo/cp/build/3.7.0/host/bin/�.3 # EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==40.0.0','console_�s','easy_install' __r%O__ =E� import re �sys from pkg_resources (� load_entry_point if __named�= '__main__': sys.argv[0] = re.sub(r'(-�\.pyw?|\.exe)?$', '',5�)F�Qexit(��X� �(# $ %")(b�)zO-3.7�-3.7')() ) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������