+
    üÐjÏG  ã                   ó  € R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHtH	t	 ^ RI
Ht ^RIHt  ! R R4      t ! R R	]4      t ! R
 R]4      t ! R R]4      t ! R R4      t ! R R4      t]! 4       t]]]]]]]! R4      ]]! ]4      .	t ! R R4      t  ! R R4      t! ! R R4      t" ! R R4      t#R t$ ! R R]%4      t&]PN                  ! R4      t(R t)R t*R  t+R! t,R" t- ! R# R$4      t.R% t/R,R& lt0R' t1R( t2R) t3 ! R* R+4      t4R# )-z|
AOT: Abstract Object Trees
The source-code-marshallin'est abstract-object-serializin'est persister
this side of Marmalade!
N)Úcrefutil)ÚlogÚreflect)Ú_constructMethod)Úgenerate_tokensc                   ó&   a € ] tR t^!t o R tRtV tR# )ÚNamedc                ó   € Wn         R # ©N©Úname)Úselfr   s   &&Ú7/usr/lib/python3/dist-packages/twisted/persisted/aot.pyÚ__init__ÚNamed.__init__"   s   € ØŽ	ó    r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r   !   s   ø‡ € ÷ð r   r   c                   ó&   a € ] tR t^&t o R tRtV tR# )ÚClassc                ó(   € R V P                   ,          # )z	Class(%r)r   ©r   s   &r   Ú	getSourceÚClass.getSource'   s   € Ø˜TŸY™YÕ&Ð&r   © N©r   r   r   r   r   r   r   r   s   @r   r   r   &   s   ø‡ € ÷'ð 'r   r   c                   ó&   a € ] tR t^+t o R tRtV tR# )ÚFunctionc                ó(   € R V P                   ,          # )zFunction(%r)r   r   s   &r   r   ÚFunction.getSource,   s   € Ø §	¡	Õ)Ð)r   r    Nr!   r   s   @r   r#   r#   +   s   ø‡ € ÷*ð *r   r#   c                   ó&   a € ] tR t^0t o R tRtV tR# )ÚModulec                ó(   € R V P                   ,          # )z
Module(%r)r   r   s   &r   r   ÚModule.getSource1   s   € Ø˜dŸi™iÕ'Ð'r   r    Nr!   r   s   @r   r'   r'   0   s   ø‡ € ÷(ð (r   r'   c                   ó,   a € ] tR t^5t o R tR tRtV tR# )ÚInstanceMethodc                óÒ   € \        V\        4      '       g?   \        V\        4      '       g)   \        V\        4      '       g   \	        R V,          4      hWn        W n        W0n        R# )z$%s isn't an Instance, Ref, or Deref!N)Ú
isinstanceÚRefÚInstanceÚDerefÚ	TypeErrorr   ÚklassÚinstance)r   r   r2   Úinsts   &&&&r   r   ÚInstanceMethod.__init__6   sI   € ä�tœS×!Ò!Ü˜$¤×)Ò)Ü˜$¤×&Ò&äÐBÀTÕIÓJÐJØŒ	ØŒ
ØŽr   c                óv   € R P                  V P                  V P                  \        V P                  4      4      # )z InstanceMethod({!r}, {!r}, 
 {}))Úformatr   r2   Úprettifyr3   r   s   &r   r   ÚInstanceMethod.getSourceA   s/   € Ø3×:Ñ:Ø�I‰IØ�J‰JÜ�T—]‘]Ó#ó
ð 	
r   )r3   r2   r   N©r   r   r   r   r   r   r   r   r   s   @r   r+   r+   5   s   ø‡ € ò	÷
ð 
r   r+   c                   ó   € ] tR t^ItRtR# )Ú_NoStateObjr    N)r   r   r   r   r   r    r   r   r<   r<   I   s   † Ûr   r<   c                   ó2   a € ] tR t^\t o ]3R ltR tRtV tR# )r/   c                ó®   € \        V\        4      '       g   \        R V,          4      hWn        V\        Jd   W n        ^ V n        R# W0n        ^V n        R# )z%s isn't a string!N)r-   Ústrr1   r2   Ú
NoStateObjÚstateÚstateIsDict)r   Ú	classNameÚ__stateObj__rA   s   &&&,r   r   ÚInstance.__init__]   sG   € Ü˜)¤S×)Ò)ÜÐ0°9Õ<Ó=Ð=ØŒ
ØœzÓ)Ø%ŒJØ ˆDÖàŒJØ ˆDÖr   c                óô  € V P                   '       d   V P                  pMc\        V P                  \        4      '       dB   \        V P                  P                  \
        4      '       d   V P                  P                  pMR pVe    RV P                  : R\        V4       R2# RV P                  : R\        V P                  4       R2#   \         d!    RT P                  : R\        T4       R2u # i ; i)Nz	Instance(ú, Ú))
rB   rA   r-   r.   ÚobjÚdictr2   ÚdictToKWÚNonFormattableDictr8   )r   Ú	stateDicts   & r   r   ÚInstance.getSourceh   sÐ   € à××ÐØŸ
™
‰IÜ˜Ÿ
™
¤C×(Ò(¬Z¸¿
¹
¿¹Ì×-MÒ-MØŸ
™
Ÿ™‰IàˆIØÒ ðJØ" 4§:¡:¡.°´8¸IÓ3FÐ2GÀqÐIÐIð ˜4Ÿ:™:™.¨¬8°D·J±JÓ+?Ð*@ÀÐBÐBøô &ô JØ" 4§:¡:¡.°´8¸IÓ3FÐ2GÀqÐIÒIðJús   ÂC Ã(C7Ã6C7)r2   rA   rB   N)	r   r   r   r   r@   r   r   r   r   r   s   @r   r/   r/   \   s   ø‡ € Ø/9ô 	!÷Cð Cr   r/   c                   ó8   a € ] tR t^xt o R tR tR tR tRtV t	R# )r.   c                ó’   € \        V4      ^8X  d   V^ ,          V n        V^,          V n        R# V'       g   RV n        RV n        R# R# )é   N)ÚlenÚrefnumrI   )r   Úargss   &*r   r   ÚRef.__init__y   s9   € äˆt‹9˜Œ>Ø˜q�'ˆDŒKØ˜A•wˆDŽHßØˆDŒKØˆDŽHñ r   c                ól   € V P                   '       d   \        R V RV P                    24      hWn         R# )zError setting id ú, I already have N)rS   Ú
ValueError©r   Únums   &&r   ÚsetRefÚ
Ref.setRef‚   s.   € Ø�;�;ˆ;ÜÐ0°°Ð5FÀtÇ{Á{ÀmÐTÓUÐUØŽr   c                ól   € V P                   '       d   \        R V RV P                    24      hWn         R# )zError setting obj rW   N)rI   rX   )r   rI   s   &&r   ÚsetObjÚ
Ref.setObj‡   s.   € Ø�8�8ˆ8ÜÐ1°#°Ð6GÈÏÉÀzÐRÓSÐSØŽr   c                óÒ   € V P                   f   \        R4      hV P                  '       d)   RV P                  \        V P                   4      3,          # \        V P                   4      # )Nz7Don't try to display me before setting an object on me!zRef(%d, 
 %s))rI   ÚRuntimeErrorrS   r8   r   s   &r   r   ÚRef.getSourceŒ   sS   € Ø�8‰8ÒÜØIóð ð �;�;ˆ;Ø$¨¯©´X¸d¿h¹hÓ5GÐ'HÕHÐHÜ˜Ÿ™Ó!Ð!r   )rI   rS   N)
r   r   r   r   r   r[   r^   r   r   r   r   s   @r   r.   r.   x   s   ø‡ € òòò
÷
"ð "r   r.   c                   ó0   a € ] tR t^–t o R tR t]tRtV tR# )r0   c                ó   € Wn         R # r
   ©rS   rY   s   &&r   r   ÚDeref.__init__—   s   € ØŽr   c                ó(   € R V P                   ,          # )z	Deref(%d)re   r   s   &r   r   ÚDeref.getSourceš   s   € Ø˜TŸ[™[Õ(Ð(r   re   N)	r   r   r   r   r   r   Ú__repr__r   r   r   s   @r   r0   r0   –   s   ø‡ € òò)ð †Hr   r0   c                   ó,   a € ] tR t^ t o R tR tRtV tR# )ÚCopyregc                ó   € Wn         W n        R # r
   ©ÚloadfuncrA   )r   rn   rA   s   &&&r   r   ÚCopyreg.__init__¡   s   € Ø ŒØŽ
r   c                óP   € R V P                   : R\        V P                  4       R2# )zCopyreg(rG   rH   )rn   r8   rA   r   s   &r   r   ÚCopyreg.getSource¥   s&   € Ø˜$Ÿ-™-Ñ*¨"¬X°d·j±jÓ-AÐ,BÀ!ÐDÐDr   rm   Nr:   r   s   @r   rk   rk       s   ø‡ € ò÷Eð Er   rk   c                ó8   € \        R\        V 4      ,           4      # )zDPass me an AO, I'll return a nicely-formatted source representation.zapp = )Ú	indentifyr8   )Úaos   &r   r   r   ®   s   € ä�X¤¨£Õ,Ó-Ð-r   c                   ó   € ] tR t^³tRtRtR# )rL   z!A dictionary was not formattable.r    N)r   r   r   r   Ú__doc__r   r    r   r   rL   rL   ³   s   † Ý+r   rL   z[a-zA-Z_][a-zA-Z0-9_]*$c           	      ó|  € . p\        V P                  4       4      pVP                  4        V F{  w  r4\        V\        4      '       g   \        R V,          4      h\        P                  V4      '       g   \        RV,          4      hVP                  RV R\        V4       R24       K}  	  RP                  V4      # )z%r ain't a stringz%r ain't an identifierú
 Ú=Ú,Ú )ÚlistÚitemsÚsortr-   r?   rL   ÚrÚmatchÚappendr8   Újoin)ÚdÚoutr}   ÚkÚvs   &    r   rK   rK   º   s–   € Ø
€CÜ�—‘“‹O€EØ	‡J�J„LÛ‰ˆÜ˜!œS×!Ò!Ü$Ð%8¸1Õ%<Ó=Ð=Ü�w‰w�q�zŠzÜ$Ð%=ÀÕ%AÓBÐBØ�
‰
�T˜!˜˜Aœh q›k˜]¨!Ð,Ö-ñ ð �7‰7�3‹<Ðr   c           	      ó¢  € \        V R 4      '       d   V P                  4       # \        V 4      pV\        9   d   \	        V 4      # V\
        J d†   R.pV P                  4        F/  w  r4VP                  R\        V4       R\        V4       R24       K1  	  TP                  \        V 4      ;'       d    R;'       g    R4       RP                  V4      # V\        J dm   R.pV  F$  pVP                  R	\        V4      ,          4       K&  	  TP                  \        V 4      ;'       d    R
;'       g    R4       RP                  V4      # V\        J dm   R.pV  F$  pVP                  R	\        V4      ,          4       K&  	  TP                  \        V 4      ;'       d    R;'       g    R4       RP                  V4      # \        RV RV  R24      h)r   Ú{rx   z: rz   z
 }Ú}r{   Ú[z
 %s,z
 ]Ú]Ú(z
 )rH   zUnsupported type z when trying to prettify Ú.)Úhasattrr   ÚtypeÚ_SIMPLE_BUILTINSÚreprrJ   r}   r�   r8   rR   r‚   r|   Útupler1   )rI   Útr„   r…   r†   Úxs   &     r   r8   r8   Ç   s}  € Üˆs�K× Ò Ø�}‰}‹Ðô �‹IˆàÔ Ô Ü˜“9Ðà”$‹YØ�%ˆCØŸ	™	ž‘�Ø—
‘
˜T¤(¨1£+ ¨b´¸!³°¸QÐ?Ö@ñ $à�J‰J”s˜3“x×+Ð+ G×2Ð2¨sÔ3Ø—7‘7˜3“<Ðà”$‹YØ�%ˆCÛ�Ø—
‘
˜9¤x°£{Õ2Ö3ñ à�J‰J”s˜3“x×+Ð+ G×2Ð2¨sÔ3Ø—7‘7˜3“<Ðà”%‹ZØ�%ˆCÛ�Ø—
‘
˜9¤x°£{Õ2Ö3ñ à�J‰J”s˜3“x×+Ð+ G×2Ð2¨sÔ3Ø—7‘7˜3“<ÐäÐ/°¨sÐ2KÈCÈ5ÐPQÐRÓSÐSr   c                 óV  € . p. pR V .p\        VP                  4       Fx  w  ppw  rgw  r‰p
VR9   d   VP                  V4       MVR9   d   VP                  4        VR8X  d$   VP                  R\        V4      ,          4       Kg  VP                  V4       Kz  	  R P	                  V4      # )r{   Ú z  )rŠ   rŒ   rˆ   )r‹   rH   r‰   )ÚtokenizeÚpopr�   rR   r‚   )Úsr„   ÚstackÚlÚ	tokenTypeÚtokenStringÚstartRowÚstartColumnÚendRowÚ	endColumnÚlogicalLines   &          r   rs   rs   é   s�   € Ø
€CØ€EØ	ˆQˆ€Aô 
�!—%‘%Žñ	ØØÙˆÙˆØà˜/Ô)Ø�L‰L˜Õ%Ø˜OÔ+Ø�I‰IŒKØ˜$ÔØ�J‰J�tœc %›jÕ(Ö)à�J‰J�{Ö#ñ 
ð �7‰7�3‹<Ðr   c                ó4   € \        4       P                  V 4      # )z?
Pass me an Abstract Object Tree, and I'll unjelly it for you.
)ÚAOTUnjellierÚunjelly)Úaots   &r   ÚunjellyFromAOTr§     s   € ô ‹>×!Ñ! #Ó&Ð&r   c                ó8  € R\         R\        R\        R\        R\        R\
        R\        R\        /p\        V R	4      '       d   V P                  4       pMT p\        VR
R4      p\        W1V4       RV9   d   \        VR,          4      # \        RV ,          4      h)zÕ
Pass me a string of code or a filename that defines an 'app' variable (in
terms of Abstract Objects!), and I'll execute it and unjelly the resulting
AOT for you, returning a newly unpersisted Application object!
r/   r+   r   r#   r'   r.   r0   rk   Úreadz<source>ÚexecÚappz'%s needs to define an 'app', it didn't!)r/   r+   r   r#   r'   r.   r0   rk   rŽ   r©   ÚcompileÚevalr§   rX   )ÚstringOrFileÚnsÚsourceÚcodes   &   r   ÚunjellyFromSourcer²     s”   € ð 	”HØœ.Ø”Ø”HØ”&ØŒsØ”Ø”7ð	
€Bô ˆ|˜V×$Ò$Ø×"Ñ"Ó$‰àˆÜ�6˜: vÓ.€DÜˆ�2Ôà�„{Ü˜b �iÓ(Ð(äÐBÀ\ÕQÓRÐRr   c                   óN   a € ] tR tRt o RtR tR tR tR tR t	R t
R	 tR
tV tR# )r¤   i*  zOI handle the unjellying of an Abstract Object Tree.
See AOTUnjellier.unjellyAO
c                ó0   € / V n         . V n        . V n        R # r
   )Ú
referencesrš   ÚafterUnjellyr   s   &r   r   ÚAOTUnjellier.__init__/  s   € ØˆŒØˆŒ
ØˆÖr   c                óV   € \         P                  ! 4       pV P                  V^ V4       V# )zUnjelly a node, later.)r   Ú_DeferÚunjellyInto)r   Únoderƒ   s   && r   ÚunjellyLaterÚAOTUnjellier.unjellyLater7  s%   € ä�OŠOÓˆØ×Ñ˜˜A˜tÔ$Øˆr   c                ó’   € V P                  V4      pWAV&   \        V\        P                  4      '       d   VP	                  W4       V# )zfUtility method for unjellying one object into another.
This automates the handling of backreferences.
)Ú	unjellyAOr-   r   ÚNotKnownÚaddDependant)r   rI   Úlocrt   Úos   &&&& r   rº   ÚAOTUnjellier.unjellyInto=  s=   € ð �N‰N˜2ÓˆØˆC‰Ü�aœ×*Ñ*×+Ò+Ø�N‰N˜3Ô$Øˆr   c                ó°   € \        V\        P                  4      '       d   R .pVP                  V^4       MV.pV P                  P                  W34       R # r
   )r-   r   rÀ   rÁ   r¶   r�   )r   ÚcallableÚresultÚ
listResults   &&& r   Ú	callAfterÚAOTUnjellier.callAfterG  sJ   € Ü�fœh×/Ñ/×0Ò0Ø˜ˆJØ×Ñ 
¨AÕ.à ˜ˆJØ×Ñ× Ñ  (Ð!7Ö8r   c                ó>   € V P                  VP                  W#4       R# )zÁUtility method for unjellying into instances of attributes.

Use this rather than unjellyAO unless you like surprising bugs!
Alternatively, you can use unjellyInto on your instance's __dict__.
N)rº   Ú__dict__)r   r3   ÚattrNamert   s   &&&&r   ÚunjellyAttributeÚAOTUnjellier.unjellyAttributeO  s   € ð 	×Ñ˜×*Ñ*¨HÖ9r   c           	     óÔ	  € V P                   P                  V4       \        V4      pV\        9   d   V# V\        J dB   . pV F7  pVP                  R4       V P                  V\        V4      ^,
          V4       K9  	  V# V\        J d~   . p\        pV Fg  pVP                  R4       \        V P                  V\        V4      ^,
          V4      \        P                  4      '       g   KW  \        P                  pKi  	  V! V4      # V\        J dZ   / pVP                  4        FA  w  rx\        P                  ! V4      p	V P                  V	^ V4       V P                  V	^V4       KC  	  V# VP                  p
V
\         J d!   \"        P$                  ! VP&                  4      # V
\(        \*        39   g   \-        V
\        4      '       d!   \"        P.                  ! VP&                  4      # V
\0        J dµ   VP&                  p\"        P.                  ! VP2                  4      pV P5                  VP6                  4      pW¼P8                  9   dS   Vf   \;        WË4      # \        V\        P                  4      '       d   \        P<                  ! W½V4      # \?        WËV4      # \A        R4      hV
\B        J d³   \"        P.                  ! VP2                  4      pV P5                  VPD                  4      pVPG                  V4      p\I        VR4      '       d   V PK                  VPL                  V4       V# \        V\        4      '       d
   VVn        V# VPO                  4       Vn        V# V
\P        J d¹   V P5                  VPR                  4      pVPT                  pV PV                  PY                  V4      pVf   VV PV                  V&   V# \        V\        P                  4      '       d#   VP[                  V4       VV PV                  V&   V# Vf    V# \]        RV: RV: RV: R24      hV
\^        J dU   VPT                  pV PV                  PY                  V4      pVf(   \        P`                  ! V4      pVV PV                  V&   V# V# V
\b        J dO   \"        P.                  ! VPd                  4      pV Pg                  VPD                  4      Pi                  R V4      pV# \A        RV,          4      h)	zQUnjelly an Abstract Object and everything it contains.
I return the real object.
Nzinstance method changedÚ__setstate__z&Multiple references with the same ID: rG   Ú!c                 ó   € V! V !  # r
   r    )rÇ   Ú_ls   &&r   Ú<lambda>Ú(AOTUnjellier.unjellyAO.<locals>.<lambda>º  s   € ¡r¨6¢{r   zUnsupported AOT type: %s)5rš   r�   r�   r�   r|   rº   rR   r’   r-   r   rÀ   Ú_TuplerJ   r}   Ú_DictKeyAndValueÚ	__class__r'   r   ÚnamedModuler   r   r#   Ú
issubclassÚnamedObjectr+   r2   r¿   r3   rÌ   ÚgetattrÚ_InstanceMethodr   r1   r/   rA   Ú__new__rŽ   rÉ   rÑ   Ú__getstate__r.   rI   rS   rµ   ÚgetÚresolveDependantsrX   r0   Ú_Dereferencerk   rn   r¼   ÚaddCallback)r   rt   r“   r›   r”   Útuple_rƒ   r…   r†   ÚkvdÚcÚim_nameÚim_classÚim_selfr2   rA   r4   rÃ   ÚrefkeyÚrefrZ   Úderrn   s   &&                     r   r¿   ÚAOTUnjellier.unjellyAOX  s	  € ð 	�
‰
×Ñ˜"ÔÜ�‹HˆØÔ Ô ØˆIà”$‹YØˆAÛ�Ø—‘˜”Ø× Ñ  ¤C¨£F¨Q¥J°Ö2ñ ð ˆHà”%‹ZØˆAÜˆFÛ�Ø—‘˜”Ü˜d×.Ñ.¨q´#°a³&¸1µ*¸aÓ@Ä(×BSÑBS×TÔTÜ%Ÿ_™_’Fñ ñ ˜!“9Ðà”$‹YØˆAØŸ™ž
‘�Ü×/Ò/°Ó2�Ø× Ñ   a¨Ô+Ø× Ñ   a¨Ö+ñ #ð ˆHð —‘ˆAØ”F‹{Ü×*Ò*¨2¯7©7Ó3Ð3à”uœhÐ'Ô'¬:°a¼×+>Ò+>Ü×*Ò*¨2¯7©7Ó3Ð3à”nÓ$ØŸ'™'�Ü"×.Ò.¨r¯x©xÓ8�ØŸ.™.¨¯©Ó5�Ø×/Ñ/Ô/Ø’Ü& xÓ9Ð9Ü# G¬X×->Ñ->×?Ò?Ü'×7Ò7¸È(ÓSÐSä/°À7ÓKÐKä#Ð$=Ó>Ð>à”h“Ü×+Ò+¨B¯H©HÓ5�ØŸ™ r§x¡xÓ0�Ø—}‘} UÓ+�Ü˜5 .×1Ò1Ø—N‘N 4×#4Ñ#4°eÔ<ð
 �ô	   ¤t×,Ò,Ø$)�D”Mð �ð %*×$6Ñ$6Ó$8�D”MØ�à”c“Ø—N‘N 2§6¡6Ó*�ØŸ™�Ø—o‘o×)Ñ)¨&Ó1�Ø’;Ø./�D—O‘O FÑ+ð �ô   ¤X×%6Ñ%6×7Ò7Ø×)Ñ)¨!Ô,Ø./�D—O‘O FÑ+ð �ð ’^àð �õ	 %ã£«ð,óð ð ”e“Ø—i‘i�Ø—o‘o×)Ñ)¨#Ó.�Ø’;Ü"×/Ò/°Ó4�CØ+.�D—O‘O CÑ(Ø�JØ�
à”g“Ü"×.Ò.¨r¯{©{Ó;�Ø×%Ñ% b§h¡hÓ/×;Ñ;Ù2°Hó�ð �äÐ :¸QÕ >Ó?Ð?r   c           	     óP  €  R .pV P                  V^ V4       V P                   F  w  r4V! V^ ,          4       K  	  V^ ,          #   \         dV    \        P                  ! R4       \        P                  ! RP                  \        \        T P                  4      4      4       h i ; i)Nú+Error jellying object! Stacktrace follows::Ú
)	rº   r¶   ÚBaseExceptionr   Úmsgr‚   Úmapr‘   rš   )r   rt   r›   Úfuncr†   s   &&   r   r¥   ÚAOTUnjellier.unjellyÀ  s…   € ð		Ø�ˆAØ×Ñ˜Q  2Ô&Ø×,Ô,‘�Ù�Q�q•T–
ñ -à�Q•4ˆKøÜô 	Ü�GŠGÐAÔBÜ�GŠG�D—I‘Iœc¤$¨¯
©
Ó3Ó4Ô5Øð	ús   ‚AA ÁA B%)r¶   rµ   rš   N)r   r   r   r   rv   r   r¼   rº   rÉ   rÎ   r¿   r¥   r   r   r   s   @r   r¤   r¤   *  s5   ø‡ € ñòòòò9ò:òf@÷P
ð 
r   r¤   c                ó4   € \        4       P                  V 4      # )z-Convert an object to an Abstract Object Tree.)Ú
AOTJellierÚjelly)rI   s   &r   Ú
jellyToAOTrú   Ò  s   € ä‹<×Ñ˜cÓ"Ð"r   c                ó”   € \        V 4      pV'       d,   VP                  \        V4      P                  R4      4       R# \        V4      # )zš
Pass me an object and, optionally, a file object.
I'll convert the object to an AOT either return it (if no file was
specified) or write it to the file.
zutf-8N)rú   Úwriter   Úencode)rI   Úfiler¦   s   && r   ÚjellyToSourcerÿ   ×  s5   € ô �S‹/€CßØ�
‰
”9˜S“>×(Ñ(¨Ó1Ö2ä˜‹~Ðr   c                ó.   € V P                   P                  # )z¥
Get the associated class of the given method object.

@param methodObject: a bound method
@type methodObject: L{types.MethodType}

@return: a class
@rtype: L{type}
)Ú__self__rÙ   ©ÚmethodObjects   &r   Ú_classOfMethodr  å  s   € ð × Ñ ×*Ñ*Ð*r   c                ó   € V P                   # )zØ
Get the associated function of the given method object.

@param methodObject: a bound method
@type methodObject: L{types.MethodType}

@return: the function implementing C{methodObject}
@rtype: L{types.FunctionType}
)Ú__func__r  s   &r   Ú_funcOfMethodr  ò  ó   € ð × Ñ Ð r   c                ó   € V P                   # )zÀ
Get the object that a bound method is bound to.

@param methodObject: a bound method
@type methodObject: L{types.MethodType}

@return: the C{self} passed to C{methodObject}
@rtype: L{object}
)r  r  s   &r   Ú_selfOfMethodr
  ÿ  r  r   c                   ó8   a € ] tR tRt o R tR tR tR tRtV t	R# )rø   i  c                ó0   € / V n         ^ V n        . V n        R# )é    N)ÚpreparedÚ_ref_idrš   r   s   &r   r   ÚAOTJellier.__init__  s   € àˆŒØˆŒØˆŽ
r   c                ó4   € WP                   \        V4      &   R# )zYI prepare an object for later referencing, by storing its id()
and its _AORef in a cache.N)r  Úid)r   ÚaorefÚobjects   &&&r   ÚprepareForRefÚAOTJellier.prepareForRef  s   € ð %*�‰”b˜“jÓ!r   c           	     ó¬  a aa€ \        S4      pS P                  P                  \        S4      4       V\        9   d   SoEM€\        V\        P                  4      '       dX   \        \        S4      P                  \        P                  ! \        S4      4      S P                  \        S4      4      4      oEM	\        V\        P                   4      '       d   \#        SP                  4      oEMÒ\        V\         4      '       d"   \%        \        P                  ! S4      4      oEM›V\        P&                  J d"   \)        \        P*                  ! S4      4      oEMf\-        S4      S P.                  9   d|   S P.                  \-        S4      ,          pVP0                  '       d   VP0                  pM5S P2                  ^,           S n        S P2                  pVP5                  V4       \7        V4      # \9        4       oVVV 3R lpS P;                  SS4       V\<        J d3   SP?                  S Uu. uF  pS P                  V4      NK  	  up4       EMqV\@        J d1   SP?                  \A        \C        S P                  S4      4      4       EM7V\D        J dQ   / pSPG                  4        F(  w  r‰S P                  V	4      VS P                  V4      &   K*  	  SP?                  V4       MÝV\H        PJ                  9   d_   \H        PJ                  V,          ! S4      w  r«SP?                  \M        \        P*                  ! V
4      S P                  V4      4      4       Mj\O        SR4      '       d   V! SPQ                  4       4       MA\O        SR4      '       d   V! SPR                  4       M\U        RVP                  ,          4      hS P                  R S# u upi )z+I turn an object into an AOT and return it.c                 ó˜   <€ SP                  \        \        P                  ! SP                  4      SP                  V 4      4      4       R # r
   )r^   r/   r   ÚqualrÙ   Ú	jellyToAO)rA   rI   Úretvalr   s   &€€€r   Ú
_stateFromÚ(AOTJellier.jellyToAO.<locals>._stateFromL  s/   ø€ Ø—‘ÜœWŸ\š\¨#¯-©-Ó8¸$¿.¹.ÈÓ:OÓPör   rà   rÌ   zUnsupported type: %séÿÿÿÿ)+r�   rš   r�   r‘   r�   rÛ   ÚtypesÚ
MethodTyper+   r  r   r   r  r  r  r
  Ú
ModuleTyper'   r   ÚFunctionTyper#   ÚfullFuncNamer  r  rS   r  r[   r0   r.   r  r|   r^   r’   rô   rJ   r}   Úcopy_regÚdispatch_tablerk   rŽ   rà   rÌ   r1   )r   rI   ÚobjTypeÚoldRefÚkeyr  rÃ   rƒ   r…   r†   ÚunpickleFuncrA   r  s   ff          @r   r  ÚAOTJellier.jellyToAO  s¶  ú€ ä�s“)ˆØ�
‰
×Ñœ$˜s›)Ô$ð Ô&Ô&ØŠFä˜¤×!1Ñ!1×2Ò2ô $Ü˜cÓ"×+Ñ+Ü—’œ^¨CÓ0Ó1Ø—‘œ}¨SÓ1Ó2óŠFô ˜¤×!1Ñ!1×2Ò2Ü˜CŸL™LÓ)ŠFä˜¤×&Ò&Üœ7Ÿ<š<¨Ó,Ó-ŠFàœ×*Ñ*Ó*Üœg×2Ò2°3Ó7Ó8ŠFô �#‹w˜$Ÿ-™-Ô'ØŸ™¤r¨#£wÕ/�Ø—=—=�=à Ÿ-™-‘Cð $(§<¡<°!Õ#3�D”LØŸ,™,�CØ—M‘M #Ô&Ü˜S“zÐ!ä“UˆF÷ð
 ×Ñ˜v sÔ+àœ$‹Ø—‘¹#Ó>¹#°Q˜tŸ~™~¨aÖ0¹#Ñ>Ö?àœEÓ!Ø—‘œe¤C¨¯©¸Ó$<Ó=Ö>àœD“Ø�ØŸI™IžK‘D�AØ+/¯>©>¸!Ó+<�A�d—n‘n QÓ'Ó(ñ (à—‘˜aÕ àœH×3Ñ3Ô3Ü&.×&=Ñ&=¸gÖ&FÀsÓ&KÑ#�à—‘ÜœG×0Ò0°Ó>ÀÇÁÈuÓ@UÓVõô ˜˜n×-Ò-Ù˜3×+Ñ+Ó-Õ.Ü˜˜j×)Ò)Ù˜3Ÿ<™<Õ(äÐ 6¸×9IÑ9IÕ IÓJÐJà�J‰J�rˆNØˆùò5 ?s   È.Oc                óÔ   €  V P                  V4      pV#   \         dH    \        P                  ! R 4       \        P                  ! RP	                  T P
                  4      4       h i ; i)rð   rñ   )r  rò   r   ró   r‚   rš   )r   rI   rt   s   && r   rù   ÚAOTJellier.jellyp  sR   € ð	Ø—‘ Ó$ˆBØˆIøÜô 	Ü�GŠGÐAÔBÜ�GŠG�D—I‘I˜dŸj™jÓ)Ô*Øð	ús
   ‚ •AA')r  r  rš   N)
r   r   r   r   r   r  r  rù   r   r   r   s   @r   rø   rø     s    ø‡ € òò*ò
V÷pð r   rø   r
   )5rv   Úcopyregr$  Úrer  Útwisted.persistedr   Útwisted.pythonr   r   Útwisted.python.compatr   Ú	_tokenizer   r—   r   r   r#   r'   r+   r<   r@   ÚboolÚbytesr?   ÚintÚfloatÚcomplexr�   ÚsliceÚEllipsisr�   r/   r.   r0   rk   r   Ú	ExceptionrL   r¬   r   rK   r8   rs   r§   r²   r¤   rú   rÿ   r  r  r
  rø   r    r   r   Ú<module>r;     s7  ðñó Û 	Û å &ß 'Ý 2õ 3÷ñ ô
'ˆEô 'ô
*ˆuô *ô
(ˆUô (÷

ñ 
÷(	ñ 	ñ ‹]€
ð 	Ø	ØØØ	ØÙˆƒJØ	ÙˆƒNð
Ð ÷Cñ C÷8"ñ "÷<ñ ÷Eñ Eò.ô
,˜ô ,ð ‡J‚JÐ(Ó)€ò
òTòDò6'òS÷>`ñ `òP#ô
ò
+ò
!ò
!÷kó kr   