ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ ^Sc@sdZdefdYZdefdYZdefdYZdefdYZd Zd efd YZd efd YZ dS(s0.3.1t SchemaErrorcBs&eZdZdZedZRS(sError during Schema validation.cCs_t|tkr|n|g|_t|tkr<|n|g|_tj||jdS(N(ttypetlisttautosterrorst Exceptiont__init__tcode(tselfRR((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyRs$$cCs[d}|d|jD}|d|jD}|rNdj|Sdj|S(NcSsBt}|j}g|D]%}||kr|| r|^qS(N(tsettadd(tseqtseentseen_addtx((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pytuniqs  css!|]}|dk r|VqdS(N(tNone(t.0ti((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pys scss!|]}|dk r|VqdS(N(R(RR((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pys ss (RRtjoin(RRtate((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyR s   (t__name__t __module__t__doc__RtpropertyR(((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyRs tAndcBs#eZdZdZdZRS(cOs@||_t|dggfks*t|jd|_dS(Nterror(t_argsRtAssertionErrortgett_error(Rtargstkw((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyRs !cCs*d|jjdjd|jDfS(Ns%s(%s)s, css|]}t|VqdS(N(trepr(RR((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pys #s(t __class__RRR(R((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyt__repr__!s cCsIxBg|jD]}t|d|j^q D]}|j|}q,W|S(NR(RtSchemaRtvalidate(Rtdatats((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyR&%s2(RRRR$R&(((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyRs  tOrcBseZdZRS(cCstgg}x`g|jD]}t|d|j^qD]3}y|j|SWq;tk rm}|}q;Xq;Wtd||fg|j|jg|jdS(NRs%r did not validate %r(RRR%RR&RR(RR'RR(t_x((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyR&-s2(RRR&(((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyR)+stUsecBs&eZddZdZdZRS(cCs(t|st||_||_dS(N(tcallableRt _callableR(Rt callable_R((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyR:s cCsd|jj|jfS(Ns%s(%r)(R#RR-(R((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyR$?scCsy|j|SWnvtk rL}tdg|j|jg|jn>tk r}|jj}td|||f|jnXdS(Ns%s(%r) raised %r(R-RRRRRt BaseExceptionR(RR'Rtf((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyR&Bs) N(RRRRR$R&(((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyR+8s  cCs|t|ttttfkr"dSt|tkr8dSt|drKdStt|trddSt|rtdSdSdS( s"Return priority for a give object.iiR&iiiiN( RRttupleR t frozensettdictthasattrt issubclassR,(R(((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pytpriorityLs R%cBs&eZddZdZdZRS(cCs||_||_dS(N(t_schemaR(RtschemaR((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyR^s cCsd|jj|jfS(Ns%s(%r)(R#RR7(R((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyR$bscsp|j|jtttttfkrtttdj|}tfd|DStt krtt dj|}t|}d}t}tt dt }x|j D]\}}t}d} x|D]} | } yt| dj|} Wntk rEqXyt| dj|} Wntk r} | }qX|j| t}PqW|r| || jstkeysinvalid value for key %rcss'|]}t|tk r|VqdS(N(RtOptional(Rtk((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pys scss'|]}t|tk r|VqdS(N(RR;(RR<((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pys ssmissed keys %rs, css|]}d|VqdS(s%rN((RR<((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pys sswrong keys %s in %rR&s%r.validate(%r) raised %rs%r should be instance of %rs%s(%r) raised %rs%s(%r) should evaluate to Trues%r does not match %r(R7RRRR1R R2R%R&R3RtsortedR6titemstFalseRR tTrueRRtlentkeysRR4R/R5t isinstanceR,R(RR'tnewRtcoveraget sorted_skeysR:tvaluetvalidtskeytsvaluetnkeytnvalueR*trequiredt wrong_keyst s_wrong_keysR0((RR(s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyR&es  !#         $ " &   & N(RRRRR$R&(((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyR%\s  R;cBseZdZRS(s&Marker for an optional part of Schema.(RRR(((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyR;sN( t __version__RRtobjectRR)R+R6R%R;(((s7/opt/alt/python27/lib/python2.7/site-packages/schema.pyts  W