ó
    Ö›‘h	  ã                   ó¨   • S r SSKrSSKrSSKJr  SSKJr  SSKJr   " S S5      r	Sr
\" \R                  5       " S	 S
\R                  5      5       rg)z,Support for working directly with IP packetsé    N)Úimplementer)Úprotocol)Úrawc                   ó   • \ rS rSrS rSrg)ÚIPHeaderé   c           
      ór  • [         R                  " SUS S 5      u
  nU l        U l        U l        nU l        U l        U l        nn[        R                  " U5      U l
        [        R                  " U5      U l        US-  U l        US-  S-	  S-  U l        US-  U l        US-  S	:g  U l        US
-  S	:g  U l        g )Nz!BBHHHBBH4s4sé   é   éð   é   é   iÿ  i @  r   i    )ÚstructÚunpackÚtosÚtot_lenÚfragment_idÚttlr   ÚcheckÚsocketÚ	inet_ntoaÚsaddrÚdaddrÚversionÚihlÚfragment_offsetÚdont_fragmentÚmore_fragments)ÚselfÚdataÚ
ihlversionÚfrag_offr   r   s         ÚSC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/pair/ip.pyÚ__init__ÚIPHeader.__init__   s¿   € ô �MŠM˜/¨4°°¨9Ó5ñ	
ØØŒHØŒLØÔØØŒHØŒMØŒJØØä×%Ò% eÓ,ˆŒ
Ü×%Ò% eÓ,ˆŒ
Ø! DÑ(ˆŒØ $Ñ&¨1Ñ,°Ñ2ˆŒØ'¨&Ñ0ˆÔØ%¨Ñ.°!Ñ3ˆÔØ&¨Ñ/°1Ñ4ˆÕó    )r   r   r   r   r   r   r   r   r   r   r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r$   Ú__static_attributes__© r&   r#   r   r      s   † õ5r&   r   l        c                   ó&   • \ rS rSrS rS rS rSrg)Ú
IPProtocolé-   c                 ó   • 0 U l         g )N©ÚipProtos)r   s    r#   r$   ÚIPProtocol.__init__/   s	   € Øˆ�r&   c                 óô   • [         R                  " U5      nUS:  a  [        S5      eU[        :¼  a  [        S5      eXR                  ;  a  / U R                  U'   U R                  U   R                  U5        g )Nr   z'Added protocol must be positive or zeroz"Added protocol must fit in 32 bits)r   ÚIRawDatagramProtocolÚ	TypeErrorÚMAX_SIZEr2   Úappend)r   ÚnumÚprotos      r#   ÚaddProtoÚIPProtocol.addProto2   sg   € Ü×(Ò(¨Ó/ˆØ�‹7ÜÐEÓFÐFØ”(‹?ÜÐ@ÓAÐAØ—m‘mÓ#Ø!#ˆD�M‰M˜#ÑØ�‰�cÑ×!Ñ! %Õ(r&   c                 ó¢  • [        U5      nU R                  R                  UR                  S5       Hš  nUR	                  USS  UUR
                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  S9  Mœ     g )Nr,   r
   )r    ÚpartialÚsourceÚdestr   r   r   r   r   r   r   r   r   r   )r   r2   Úgetr   ÚdatagramReceivedr   r   r   r   r   r   r   r   r   r   r   )r   r    r>   r@   r?   r   Úheaderr:   s           r#   rB   ÚIPProtocol.datagramReceived<   s¥   € Ü˜$“ˆØ—]‘]×&Ñ& v§¡¸Ö;ˆEØ×"Ñ"Ø˜"˜#�YØØ—|‘|Ø—\‘\ØŸ™ØŸ™Ø—J‘JØ—J‘JØŸ™Ø"×.Ñ.Ø &× 6Ñ 6Ø$×2Ñ2Ø%×4Ñ4Ø—J‘Jð #ó ò <r&   r1   N)r'   r(   r)   r*   r$   r;   rB   r+   r,   r&   r#   r.   r.   -   s   † òò)õr&   r.   )Ú__doc__r   r   Úzope.interfacer   Útwisted.internetr   Útwisted.pairr   r   r7   ÚIRawPacketProtocolÚAbstractDatagramProtocolr.   r,   r&   r#   Ú<module>rK      sV   ðñ 3ã Û å &å %Ý ÷5ñ 5ð. €ñ ˆS×#Ñ#Ó$ô �×2Ñ2ó  ó %ñ r&   