
    Kgi                     p    d dl mZmZmZ dZ G d d          Z G d de          Z G d de          Zd	S )
    )ListTupleUnion)S)Sr   r   r      r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )Sr      r   r   r      r   r   r   r	   r   r   r   r   r   r	   r	   r   r	   r   r	   r	   r   r   r	   r	   r	   r   r   r   r   r	   r	   r      r   r	   r   r	   r   r	   r
   r	   r   r	   r
   r   r   r   r	   r   r   r	   r	   r   r	   r	   r   r   r   r   r   r	   r   r	   r	   r   r   r   r   r   r	   r
   r
   r
   r
   r   r   r   r   r   r	   r   )Sr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )Sr   r   r   r
   r   r
   r   r   r   r   r
   r   r   r	   r
   r	   r
   r   r
   r	   r   r	   r   r   r	   r   r	   r	   r   r	   r
   r   r   r	   r
   r
   r	   r
   r
   r
   r	   r
   r
   r	   r   r
   r
   r	   r   r	   r   r   r	   r   r   r   r   r   r   r   r   r
   r	   r   r	   r
   r   r   r   r   r   r
   r   r   r
   r   r
   r   r   r   r   r   r   Sr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )Sr   r	   r   r   r   r	   r   r	   r   r   r
   r   r	   r	   r	   r	   r   r	   r
   r   r   r	   r
   r   r   r	   r   r	   r   r   r   r   r
   r	   r   r   r	   r   r
   r
   r   r
   r
   r   r   r
   r   r	   r   r	   r	   r   r	   r	   r   r   r   r   r	   r	   r   r
   r	   r	   r	   r
   r   r   r   r	   r   r   r   r	   r   r	   r	   r   r   r   r   r	   r   )Sr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )Sr   r   r   r	   r   r	   r   r   r   r	   r   r   r	   r   r   r   r   r   r	   r   r	   r	   r	   r	   r	   r   r	   r   r	   r	   r
   r	   r	   r   r   r	   r   r
   r   r	   r	   r
   r   r   r	   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r
   r   r   r   r   r   r	   r   r   r   r   r   r	   r
   r   r	   r   r   r   r   r   r	   )Sr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )Sr   r	   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r	   r	   r   r	   r	   r	   r	   r   r   r   r	   r	   r	   r   r   r   r   r   r   r   r	   r	   r   r   r   r   r	   r   r   r	   r	   r   r	   r   r   r   r   r   r	   r	   r   r   r   r   r	   r   r   r   r   r	   r   r   r   r
   r	   r   r   r   r	   r   r   r   r   )Sr   r   r   r   r   r   r   r   r   r	   r
   r   r   r	   r   r	   r
   r   r	   r	   r   r	   r
   r   r   r   r   r	   r   r   r   r	   r	   r   r
   r   r	   r   r   r
   r   r
   r
   r   r   r
   r   r   r   r	   r   r   r	   r	   r   r   r	   r   r	   r   r   r   r	   r	   r   r
   r   r	   r   r   r   r   r
   r
   r   r
   r   r   r   r   r   r
   r   )Sr   r
   r   r
   r   r   r   r	   r   r   r   r	   r   r	   r	   r	   r   r   r   r   r   r	   r   r	   r   r	   r	   r   r   r   r   r	   r   r   r
   r   r   r   r
   r   r   r
   r	   r   r   r	   r   r	   r   r   r   r	   r	   r	   r   r	   r   r   r   r	   r	   r   r	   r	   r	   r   r   r   r   r	   r   r   r
   r   r   r   r	   r   r   r   r   r   r	   )Sr   r	   r   r   r   r	   r   r   r   r	   r   r   r	   r   r   r   r	   r	   r   r	   r   r	   r   r	   r   r   r	   r   r	   r   r
   r   r   r   r   r   r	   r
   r   r   r	   r
   r
   r   r	   r   r   r	   r   r   r	   r   r   r   r   r	   r   r   r	   r   r   r
   r	   r	   r	   r   r	   r	   r	   r	   r   r   r   r   r
   r   r   r   r	   r	   r   r   r	   )Sr   r   r   r	   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r	   r	   r	   r   r   r	   r   r   r   r   r   r   r   r   r	   r	   r   r   r	   r	   r   r   r	   r	   r   r	   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r	   r	   r	   r   r   r	   r   r   r	   r   r   r	   r	   )Sr   r   r   r   r   r	   r   r	   r   r   r   r   r	   r	   r	   r	   r	   r	   r   r	   r   r   r   r	   r   r	   r	   r   r   r	   r   r
   r   r   r   r
   r	   r
   r   r
   r	   r
   r   r   r	   r
   r
   r	   r   r	   r	   r   r   r	   r   r	   r   r   r	   r	   r   r   r	   r	   r	   r   r   r   r   r	   r   r   r
   r   r   r
   r	   r   r   r   r   r	   r   )Sr   r   r   r	   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r	   r   r	   r   r   r	   r   r   r	   r   r	   r	   r	   r   r	   r	   r	   r   r   r	   r   r	   r   r   r   r	   r   r   r   r	   r   r   r   r   r   r   r	   r   r   r   r   r	   r	   r   r   r	   r   r   r   r   r   r	   r   r	   r   r	   r	   r   r	   r   r   r   r	   )Sr   r	   r   r	   r   r   r   r   r   r	   r	   r   r	   r   r	   r   r   r   r	   r   r   r	   r   r	   r	   r	   r   r   r	   r   r
   r   r	   r   r   r	   r   r
   r
   r   r   r   r   r	   r	   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r	   r	   r	   r   r	   r   r   r   r   r   r   r
   r
   r	   r   r   r   r   r   r   )Sr   r   r   r   r   r	   r   r	   r   r   r	   r	   r	   r   r	   r   r   r   r	   r   r	   r   r	   r   r	   r   r   r   r   r   r   r   r   r   r   r	   r   r   r	   r   r   r   r   r	   r   r	   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r	   r   r   r   r	   r   r   r   r   r   r	   r	   )Sr   r   r   r   r   r
   r   r   r   r   r   r   r   r	   r	   r   r	   r	   r
   r	   r	   r	   r   r	   r   r   r	   r   r   r	   r	   r	   r   r   r   r	   r   r   r
   r
   r	   r   r
   r   r	   r
   r   r   r   r	   r	   r   r   r	   r   r   r   r   r   r	   r   r   r	   r	   r	   r	   r   r	   r   r   r   r	   r   r   r   r
   r
   r   r	   r   r   r   r
   )Sr   r   r   r	   r   r	   r   r   r   r   r	   r   r	   r   r   r   r   r   r	   r   r	   r   r	   r   r	   r   r   r	   r	   r   r	   r   r	   r   r   r	   r   r   r   r   r   r   r   r   r   r	   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r	   r	   r   r   r   r   r   r   r	   r	   r   r   r   r   r	   r   r   r   r	   )Sr   r   r   r
   r   r   r   r   r   r   r   r   r   r	   r   r	   r	   r	   r   r   r   r	   r   r	   r   r   r
   r   r	   r	   r	   r	   r   r   r   r	   r   r   r	   r   r   r   r   r	   r	   r   r   r	   r   r   r	   r   r   r   r   r   r   r   r	   r	   r   r   r	   r	   r	   r   r   r   r   r   r   r	   r
   r	   r   r
   r   r   r	   r   r   r   r
   )Sr   r	   r   r   r   r   r   r   r   r   r	   r   r   r   r	   r   r	   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r	   r   r   r   r   r	   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r	   r   r   r	   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   )Sr   r   r   r
   r   r	   r   r	   r   r   r
   r   r   r	   r
   r	   r	   r   r   r	   r   r   r	   r	   r	   r	   r   r   r   r   r
   r   r	   r   r   r   r	   r
   r   r   r	   r
   r   r	   r	   r   r   r   r   r	   r	   r   r   r	   r   r	   r   r   r	   r	   r   r
   r   r   r   r   r   r   r	   r	   r
   r   r   r	   r	   r
   r   r   r	   r   r   r   r   )Sr   r   r   r	   r   r   r   r   r   r   r	   r	   r	   r   r   r   r	   r   r	   r   r	   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r	   r   r   r   r   r   r   r	   r   r   r	   r	   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r	   r   r   r	   r
   r   r	   r	   r	   r   r	   r	   r   r	   r	   r   r   r   r   r	   r	   )Sr   r   r   r   r   r	   r   r   r   r   r
   r
   r	   r   r   r   r   r   r   r	   r	   r   r   r	   r   r	   r   r	   r	   r   r   r	   r   r	   r   r	   r   r	   r   r   r   r   r   r   r   r
   r	   r	   r   r   r   r   r   r   r   r   r
   r   r	   r	   r   r   r	   r	   r	   r   r   r	   r   r   r   r   r   r	   r
   r
   r   r   r	   r   r   r	   r	   )Sr   r	   r   r   r   r	   r   r   r   r	   r   r	   r	   r   r	   r	   r	   r   r	   r   r	   r   r   r	   r	   r   r   r   r	   r   r	   r	   r   r   r   r   r   r   r
   r   r	   r	   r
   r   r	   r	   r   r	   r   r   r   r   r   r   r   r   r	   r   r   r   r   r	   r	   r   r	   r	   r   r	   r   r   r   r   r	   r	   r   r   r   r   r   r   r   r   r	   )Sr   r   r   r   r   r   r   r	   r   r   r	   r	   r	   r   r	   r   r   r   r	   r   r	   r	   r   r	   r   r   r   r   r   r   r   r	   r   r   r   r	   r   r
   r	   r	   r   r   r   r   r	   r	   r	   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r	   r	   r	   r   r	   r   r   r   r   r   r   r
   r	   r   r   r	   r	   r   r	   r
   )Sr   r   r   r	   r   r   r   r	   r   r   r	   r   r   r   r   r   r   r   r	   r   r   r	   r	   r   r   r	   r   r   r	   r   r   r	   r   r   r	   r   r   r	   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   )Sr   r	   r   r	   r   r
   r   r   r   r   r   r	   r   r	   r	   r   r   r   r
   r   r   r   r
   r   r   r   r   r   r	   r	   r   r   r	   r   r   r	   r   r   r	   r	   r   r	   r	   r   r   r
   r	   r   r   r	   r	   r   r   r   r   r   r   r   r	   r   r   r   r   r	   r	   r	   r   r   r   r   r   r	   r   r   r   r
   r   r   r	   r   r   r	   r
   )Sr   r	   r   r	   r   r	   r   r   r   r	   r	   r	   r	   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r	   r	   r   r   r	   r   r   r	   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r	   r   r	   r   r   r   r	   r   r   r   r   r	   r   r   r   r   r	   r	   )Sr   r   r   r
   r   r	   r   r	   r   r   r
   r
   r   r	   r
   r	   r   r	   r
   r	   r	   r   r
   r	   r   r   r   r	   r   r	   r   r
   r
   r	   r   r   r	   r   r   r
   r   r   r   r	   r   r
   r
   r   r   r	   r   r   r	   r   r   r	   r	   r   r   r	   r   r   r	   r	   r
   r
   r   r	   r   r	   r   r
   r
   r
   r
   r   r   r   r   r   r   r   r   )Sr   r   r   r   r   r	   r   r	   r   r	   r
   r   r   r   r	   r   r
   r   r	   r   r
   r   r   r   r	   r   r	   r	   r   r	   r	   r	   r	   r   r
   r   r   r	   r	   r
   r	   r   r   r   r   r   r	   r   r   r	   r   r   r   r	   r   r   r	   r   r	   r   r   r   r	   r   r	   r   r   r	   r   r   r   r   r   r   r	   r   r
   r   r   r   r   r	   r   )Sr   r	   r   r	   r   r	   r   r   r   r	   r   r   r	   r	   r	   r   r   r   r   r	   r	   r   r	   r	   r	   r   r   r   r	   r   r   r	   r   r	   r   r   r   r   r   r   r	   r   r   r	   r   r   r   r	   r   r	   r	   r   r	   r	   r   r   r   r   r   r   r   r   r	   r   r	   r	   r
   r   r	   r	   r
   r   r   r	   r	   r   r   r   r	   r   r   r   r   )Sr   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )Sr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r	   r   r   r   r	   r   r	   r   r   r   r
   r   r   r   r   r	   r   r
   r   r
   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r	   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )Sr   r   r   r
   r   r	   r   r   r   r	   r
   r   r   r	   r   r	   r
   r	   r   r	   r	   r   r   r	   r	   r	   r	   r	   r	   r   r   r   r	   r   r	   r   r   r
   r   r   r	   r   r   r   r	   r
   r   r	   r	   r	   r   r   r   r	   r	   r   r	   r   r	   r	   r	   r
   r	   r	   r   r
   r   r	   r   r	   r   r	   r   r	   r   r   r	   r   r	   r   r   r   r	   )Sr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r	   r   r	   r	   r   r   r   r   r   r   r   )Sr   r
   r   r
   r   r	   r   r	   r   r
   r   r   r
   r   r
   r	   r	   r   r   r	   r   r	   r
   r	   r   r	   r	   r   r   r	   r   r	   r	   r   r	   r	   r   r   r   r	   r   r   r   r	   r   r
   r
   r	   r   r	   r   r   r	   r	   r   r	   r   r   r	   r	   r   r   r
   r	   r	   r
   r   r   r   r	   r   r   r   r	   r
   r	   r	   r   r	   r   r   r   r	   )Sr   r
   r   r
   r   r	   r   r   r   r   r   r	   r
   r   r   r	   r	   r	   r   r   r   r	   r
   r	   r
   r	   r	   r   r   r   r   r	   r	   r   r	   r	   r   r   r   r   r   r
   r   r	   r	   r
   r
   r	   r   r	   r   r   r	   r   r   r   r   r   r	   r   r   r   r   r	   r   r
   r   r   r   r	   r   r   r	   r   r	   r   r   r   r	   r	   r   r	   r	   )Sr   r   r   r
   r   r
   r   r   r   r   r
   r
   r
   r	   r   r	   r	   r   r
   r   r   r	   r
   r	   r
   r	   r   r   r   r	   r   r   r	   r   r   r   r	   r   r
   r   r   r
   r
   r   r	   r
   r
   r   r   r	   r	   r   r	   r	   r   r	   r   r   r   r	   r   r   r   r	   r   r
   r   r   r   r   r   r   r	   r   r   r	   r	   r   r   r   r   r
   r
   )Sr   r   r   r   r   r
   r   r   r   r	   r	   r   r   r	   r   r   r	   r   r
   r   r	   r   r	   r   r	   r   r   r   r	   r   r	   r	   r   r   r   r	   r   r   r   r   r	   r   r   r   r	   r
   r   r   r   r	   r   r   r   r	   r   r	   r   r   r	   r   r   r	   r   r   r	   r
   r   r	   r   r   r   r	   r   r	   r	   r   r   r   r   r   r   r   r   )Sr   r   r   r
   r   r   r   r	   r   r   r
   r
   r   r	   r
   r	   r
   r	   r
   r	   r
   r   r
   r	   r   r	   r	   r   r	   r   r
   r	   r   r   r
   r   r	   r   r	   r   r
   r	   r   r   r   r
   r   r	   r   r	   r	   r   r	   r   r   r   r	   r   r   r   r   r	   r   r	   r	   r
   r   r	   r   r   r   r   r
   r
   r
   r   r	   r   r   r   r   r	   r
   )Sr   r
   r   r   r   r   r   r   r   r
   r   r	   r   r	   r   r	   r	   r	   r   r	   r   r   r
   r	   r
   r	   r   r   r   r	   r   r   r   r   r	   r
   r   r   r   r   r   r
   r	   r   r	   r   r
   r	   r	   r	   r	   r	   r	   r	   r   r   r   r   r	   r	   r   r   r	   r	   r	   r
   r	   r   r   r	   r	   r
   r	   r   r   r   r   r   r   r	   r   r	   r	   )Sr   r   r   r	   r   r	   r   r   r   r   r	   r	   r	   r   r	   r	   r	   r   r	   r   r   r   r	   r   r	   r   r   r   r   r   r   r	   r   r   r	   r   r   r   r   r   r   r	   r	   r   r   r	   r	   r	   r   r   r   r   r   r   r   r   r	   r   r	   r   r   r	   r   r   r   r	   r   r   r   r   r   r	   r	   r   r	   r	   r   r   r   r   r   r	   r	   )Sr   r   r   r	   r   r   r   r   r   r   r   r	   r   r   r	   r   r   r   r   r   r	   r   r   r	   r   r	   r   r   r   r   r   r	   r   r	   r	   r	   r   r   r   r	   r	   r	   r	   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r	   r   r   r   r   r   r   r   r   r	   r	   r	   r   r   r   r   r   r   r   r	   )Sr   r
   r   r   r   r
   r   r   r   r   r
   r
   r	   r	   r   r	   r	   r   r
   r   r   r   r   r   r   r	   r   r   r   r	   r
   r
   r   r	   r	   r   r	   r	   r
   r
   r   r
   r
   r   r	   r   r
   r	   r   r   r	   r   r	   r	   r   r	   r	   r   r   r	   r   r   r
   r	   r	   r
   r   r   r   r	   r   r
   r	   r	   r   r   r	   r   r   r   r   r
   r	   )Sr   r
   r   r
   r   r   r   r   r   r   r   r	   r   r	   r	   r	   r	   r	   r
   r   r   r   r   r   r   r
   r	   r	   r
   r   r   r   r   r	   r   r   r	   r	   r   r   r
   r
   r	   r	   r   r	   r   r	   r	   r   r	   r	   r	   r	   r   r   r   r   r   r	   r	   r
   r   r   r	   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   )Sr   r   r   r   r   r	   r   r   r   r	   r
   r   r	   r   r	   r   r   r   r   r   r	   r	   r   r   r   r	   r	   r   r   r   r	   r	   r	   r   r	   r	   r   r   r	   r	   r	   r
   r	   r	   r	   r	   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r	   r   r	   r   r   r   r   r   r	   r	   r   r   r   r	   r   r   r   r   )Sr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r	   r   r	   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   )Sr   r   r   r	   r   r   r   r   r   r	   r	   r	   r	   r   r	   r   r	   r	   r	   r	   r	   r	   r   r   r   r   r   r   r   r   r   r	   r   r	   r	   r	   r   r   r	   r
   r   r	   r	   r	   r	   r	   r	   r	   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r	   r	   r   r	   r	   r   r   r	   r   r   r   r   r   r   r   r	   )Sr   r	   r   r	   r   r   r   r	   r   r   r	   r	   r	   r   r	   r   r   r   r	   r	   r   r	   r	   r   r	   r   r	   r   r	   r   r   r	   r   r   r	   r	   r   r   r	   r	   r   r	   r   r	   r   r	   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r	   r   r   r   r	   r	   r	   r	   r	   r   r   r   r   r   r	   r	   )Sr   r   r   r   r   r   r   r   r   r   r	   r   r   r   r	   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r	   r   r	   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r	   r   r   r   r   r   r   r   r   r	   )Sr   r   r   r	   r   r	   r   r	   r   r   r	   r	   r	   r   r	   r   r	   r   r	   r   r	   r	   r	   r   r	   r   r   r	   r   r   r   r	   r	   r   r	   r	   r   r   r   r   r   r	   r	   r   r   r   r   r	   r   r   r	   r   r	   r   r   r   r	   r   r   r   r   r	   r	   r   r   r	   r   r	   r   r   r   r	   r   r   r   r	   r   r   r	   r   r   r	   r	   )Sr   r   r   r   r   r   r   r   r   r   r	   r   r   r   r	   r   r   r   r	   r   r	   r   r	   r   r   r   r   r   r   r   r	   r	   r	   r   r	   r	   r   r   r   r	   r   r	   r	   r   r   r	   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r	   r   r	   r   r   r   r	   r   r   r   r	   r   r   r   r   r   r   r   )Sr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r	   )Sr   r	   r   r	   r   r   r   r	   r   r	   r	   r	   r   r	   r   r   r   r   r	   r   r	   r	   r	   r   r	   r	   r   r   r	   r   r	   r   r   r   r   r	   r   r   r	   r   r	   r	   r   r	   r   r
   r   r   r   r	   r   r   r   r	   r   r	   r   r   r   r   r   r	   r   r	   r   r	   r   r	   r   r   r   r	   r	   r   r   r   r   r   r   r   r   r   r   )Sr   r   r   r	   r   r   r   r   r   r   r   r   r
   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r	   r   r
   r   r	   r   r	   r	   r   r   r	   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r	   r	   r	   r   r	   r	   r   r   r   r   r   r	   )Sr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   )Sr   r   r   r	   r   r   r   r	   r   r   r   r	   r   r   r	   r   r   r   r	   r   r   r   r	   r   r   r   r   r   r	   r   r   r   r   r   r	   r   r   r	   r   r
   r
   r   r   r   r   r	   r   r   r   r	   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r	   r   r   r   r   r   r   r   r	   r	   r   r   r	   r   r   r   r   r   r   )Sr   r   r   r   r   r	   r   r	   r   r   r   r   r   r   r   r   r	   r   r	   r   r	   r   r	   r   r	   r   r   r   r	   r   r	   r   r	   r   r	   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r	   r	   r	   r   r   r   r   r   r   )Sr   r   r   r	   r   r	   r   r   r   r   r	   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r	   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r	   )Sr   r   r   r
   r   r
   r   r   r   r	   r   r	   r	   r	   r   r	   r	   r	   r   r	   r   r   r
   r   r
   r
   r
   r   r	   r   r
   r
   r   r   r
   r   r	   r   r
   r   r	   r   r   r	   r	   r   r	   r	   r   r	   r   r   r   r	   r   r	   r   r   r	   r	   r   r
   r	   r   r	   r	   r   r	   r   r	   r   r	   r   r
   r   r
   r	   r   r   r	   r   r	   r   )Sr   r	   r   r	   r   r	   r   r	   r   r	   r	   r   r	   r   r	   r   r	   r   r   r	   r	   r	   r	   r	   r	   r	   r	   r   r	   r   r   r	   r	   r   r	   r   r	   r   r   r   r	   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r
   r	   r   r   r	   r   r	   r   r   r   r   r	   r   r   r	   r	   r   r	   r   r   r   r   )Sr   r	   r   r	   r   r   r   r   r   r   r   r	   r	   r   r	   r   r	   r   r   r   r	   r   r   r   r	   r   r	   r   r   r   r	   r	   r	   r   r	   r	   r	   r   r	   r   r   r	   r	   r   r	   r   r	   r	   r   r   r   r   r   r   r   r   r   r   r	   r   r   r	   r   r   r   r	   r   r   r   r   r   r   r	   r	   r   r	   r	   r   r   r   r   r	   r	   )Sr   r	   r   r   r   r   r   r	   r   r	   r   r	   r	   r   r	   r	   r	   r   r	   r   r	   r	   r   r	   r	   r	   r   r   r	   r   r
   r	   r	   r   r	   r	   r   r
   r   r	   r	   r   r
   r	   r   r
   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r	   r   r   r   r   r   r	   r
   r	   r   r   r   r   r   r	   r   )Sr   r
   r   r   r   r
   r   r   r   r   r   r	   r	   r   r	   r	   r	   r   r   r	   r   r   r
   r	   r   r	   r   r   r   r   r   r	   r   r   r
   r   r   r   r   r   r   r
   r   r   r	   r
   r   r   r   r   r   r   r	   r   r   r	   r   r   r	   r   r   r   r	   r	   r	   r   r   r   r   r	   r   r   r   r   r	   r	   r	   r   r   r   r   r	   r   )Sr   r   r   r   r   r	   r   r   r   r	   r	   r	   r   r   r	   r	   r   r   r	   r	   r   r   r	   r   r   r   r   r   r	   r   r   r   r   r   r	   r   r   r   r   r	   r	   r   r	   r   r	   r	   r   r   r   r   r   r	   r   r   r   r   r	   r   r   r   r   r	   r   r   r	   r	   r   r	   r   r   r   r   r	   r	   r   r	   r	   r   r   r   r   r   r   )Sr   r   r   r   r   r   r   r   r   r	   r   r   r	   r   r   r   r	   r   r	   r	   r	   r   r   r	   r   r   r	   r   r   r   r	   r	   r   r   r
   r   r   r   r	   r   r	   r   r	   r   r	   r	   r   r   r   r   r   r   r	   r	   r   r   r   r   r	   r   r   r   r   r	   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r	   r	   )Sr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )Sr   r   r   r	   r   r   r   r   r   r   r	   r	   r	   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r	   r   r   r   r	   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r	   r	   r   r	   r   r   r   r   r	   r   r   )Sr   r   r   r	   r   r
   r   r   r   r   r   r   r   r   r	   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r	   )Sr   r   r   r
   r   r
   r   r   r   r   r   r	   r	   r   r
   r   r	   r   r	   r	   r	   r   r   r   r   r   r	   r   r   r   r   r   r   r   r
   r	   r   r   r   r   r   r	   r   r   r	   r	   r	   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r	   r   r   r	   r   r   r   r   r   r   r	   r
   r   r   r   r   r	   r   r   r   r	   )Sr   r   r   r
   r   r   r   r   r   r   r
   r   r	   r	   r   r	   r	   r	   r   r	   r   r   r
   r	   r   r
   r   r   r   r   r	   r   r	   r   r   r   r   r	   r
   r   r   r
   r
   r   r   r
   r
   r
   r   r	   r	   r   r   r	   r   r	   r	   r   r	   r	   r   r   r	   r   r   r   r   r	   r   r   r   r	   r	   r   r   r
   r   r   r   r	   r   r   r
   )Sr   r   r   r   r   r	   r   r	   r   r	   r   r   r   r	   r	   r   r   r	   r   r	   r   r	   r
   r	   r   r	   r   r   r   r   r   r   r	   r   r	   r   r   r   r
   r
   r	   r   r
   r   r   r
   r   r	   r   r	   r   r   r	   r   r   r	   r   r   r	   r	   r	   r
   r	   r	   r	   r
   r   r   r   r	   r	   r   r	   r	   r	   r   r   r   r	   r   r   r   r	   )Sr   r   r   r
   r   r   r   r	   r   r	   r
   r
   r	   r   r   r	   r   r   r
   r   r   r   r   r   r   r	   r	   r	   r   r	   r
   r
   r   r	   r	   r   r   r   r
   r
   r	   r
   r
   r   r	   r
   r
   r   r   r	   r   r   r	   r	   r   r   r
   r   r   r   r   r   r	   r   r	   r
   r   r   r   r	   r   r
   r   r	   r   r	   r   r   r   r   r   r   r   )Sr   r	   r   r   r   r   r   r   r   r   r
   r
   r	   r	   r	   r	   r	   r   r   r   r	   r   r   r   r	   r   r   r   r	   r   r
   r   r	   r	   r	   r	   r   r
   r
   r   r
   r
   r
   r   r	   r
   r
   r
   r   r	   r   r   r   r   r   r	   r   r   r   r   r   r
   r   r	   r   r   r   r	   r   r	   r   r   r
   r   r
   r   r	   r   r   r   r   r
   r   )Sr   r	   r   r   r   r
   r   r	   r   r	   r   r   r	   r   r	   r   r	   r	   r	   r	   r	   r   r   r	   r	   r   r   r   r	   r	   r	   r	   r	   r   r	   r	   r	   r   r   r   r	   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r	   r   r	   r	   r   r	   r   r   r	   r   r   r   r	   r   r	   r   r   r   r   r   r   r   r   r   r   )Sr   r	   r   r	   r   r   r   r	   r   r   r
   r   r	   r	   r	   r   r   r   r   r   r	   r   r   r   r   r   r
   r   r	   r   r   r	   r   r   r   r	   r	   r	   r   r	   r   r
   r	   r   r	   r   r   r	   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r	   r   r   r   r
   r   r   r   r   r   r   r	   )Sr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )Sr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )Sr   r   r   r   r   r   r   r	   r   r   r   r	   r   r   r   r	   r   r   r   r   r   r	   r
   r	   r
   r	   r	   r   r   r   r   r	   r   r	   r   r   r   r   r	   r   r   r   r	   r	   r	   r   r   r   r	   r   r   r	   r   r	   r   r   r   r   r	   r	   r	   r   r   r	   r	   r
   r   r   r   r	   r   r   r	   r	   r	   r   r   r   r	   r   r   r	   r	   )Sr   r   r   r	   r   r	   r   r	   r   r	   r
   r
   r	   r	   r	   r	   r   r	   r   r	   r	   r	   r   r   r   r	   r	   r	   r	   r   r	   r
   r	   r	   r   r	   r   r   r
   r
   r
   r
   r   r	   r   r
   r
   r	   r   r   r	   r	   r	   r	   r   r	   r	   r   r   r	   r   r   r	   r	   r	   r   r   r   r   r   r   r   r	   r   r   r   r   r   r	   r   r   r   r   c                       e Zd ZdZdZdZdZdZddZdd	Z	d
e
eef         deddfdZdefdZdefdZde
eef         deeef         fdZdS )JapaneseContextAnalysis   d   i  r   returnNc                 t    d| _         g | _        d| _        d| _        d| _        |                                  d S Nr   r   F)
_total_rel_rel_sample_need_to_skip_char_num_last_char_order_doneresetselfs    V/var/www/html/4nations/venv/lib/python3.11/site-packages/pip/_vendor/chardet/jpcntx.py__init__z JapaneseContextAnalysis.__init__   s9    &(&'# "


    c                 ^    d| _         dg| j        z  | _        d| _        d| _        d| _        d S r   )r   NUM_OF_CATEGORYr   r   r   r   r   s    r   r   zJapaneseContextAnalysis.reset   s:    3!55 '(# " 


r   byte_str	num_bytesc                    | j         rd S | j        }||k     r|                     |||dz                      \  }}||z  }||k    r||z
  | _        d| _        nl|dk    r_| j        dk    rT| xj        dz  c_        | j        | j        k    r	d| _         d S | j        t          | j                 |         xx         dz  cc<   || _        ||k     d S d S )Nr   r   r   T)r   r   	get_orderr   r   MAX_REL_THRESHOLDr   jp2_char_context)r   r!   r"   iorderchar_lens         r   feedzJapaneseContextAnalysis.feed   s
   : 	F ')mm"nnXa!a%i-@AAOE8MA9}}./)m+(*%%RKKd&;r&A&AOOq(OO)???%)
$()>?F      ).% )mmmmmmr   c                 "    | j         | j        k    S N)r   ENOUGH_REL_THRESHOLDr   s    r   got_enough_dataz'JapaneseContextAnalysis.got_enough_data   s    !:::r   c                 j    | j         | j        k    r| j         | j        d         z
  | j         z  S | j        S )Nr   )r   MINIMUM_DATA_THRESHOLDr   	DONT_KNOWr   s    r   get_confidencez&JapaneseContextAnalysis.get_confidence   s6    ?T888Od&6q&99T_LL~r   _c                     dS )Nr   r    )r   r3   s     r   r$   z!JapaneseContextAnalysis.get_order   s    ur   r   N)__name__
__module____qualname__r    r1   r-   r%   r0   r   r   r   bytes	bytearrayintr*   boolr.   floatr2   r   r$   r6   r   r   r   r   x   s        OI   
 
 
 
.U5)#34 . . . . . .:; ; ; ; ;    5	!12 uS#X      r   r   c                   l     e Zd Zd fdZedefd            Zdeee	f         de
eef         fdZ xZS )SJISContextAnalysisr   Nc                 V    t                                                       d| _        d S )N	SHIFT_JIS)superr   _charset_name)r   	__class__s    r   r   zSJISContextAnalysis.__init__   s'    (r   c                     | j         S r,   )rE   r   s    r   charset_namez SJISContextAnalysis.charset_name   s    !!r   r!   c                    |sdS |d         }d|cxk    rdk    sn d|cxk    rdk    r#n n d}|dk    sd	|cxk    rdk    r
n n
d
| _         nd}t          |          dk    r%|d         }|dk    rd|cxk    rdk    r
n n|dz
  |fS d|fS )Nr5   r               r         CP932r         r   )rE   lenr   r!   
first_charr)   second_chars        r   r$   zSJISContextAnalysis.get_order   s     	5a[
J&&&&$&&&&DJ,F,F,F,F$,F,F,F,F,FHd""
(B(B(B(Bd(B(B(B(B(B%,"H x==1"1+Kc!!(C(C(C(Ct(C(C(C(C(C"T)8338|r   r7   )r8   r9   r:   r   propertystrrH   r   r;   r<   r   r=   r$   __classcell__)rF   s   @r   rA   rA      s        ) ) ) ) ) ) "c " " " X"%y(8"9 eCHo        r   rA   c                   >    e Zd Zdeeef         deeef         fdZdS )EUCJPContextAnalysisr!   r   c                     |sdS |d         }|dk    sd|cxk    rdk    rn nd}n|dk    rd}nd	}t          |          d	k    r%|d	         }|d
k    rd|cxk    rdk    r
n n|dz
  |fS d|fS )Nr5   r            r      r	   r         r   )rS   rT   s        r   r$   zEUCJPContextAnalysis.get_order   s     	5a[
$DJ$>$>$>$>$$>$>$>$>$>HH4HHH x==1"1+Kd"")D)D)D)D)D)D)D)D)D"T)8338|r   N)	r8   r9   r:   r   r;   r<   r   r=   r$   r6   r   r   r[   r[      sH        %y(8"9 eCHo      r   r[   N)typingr   r   r   r&   r   rA   r[   r6   r   r   <module>rd      s   8 & % % % % % % % % %T pB B B B B B B BJ    1   <    2     r   