
    
i                     R   d dl mZmZ d dlmZmZ d dlmZ g ddgddggddgdd	ggddgd
dggd
dgddggddgddggddgddggddgddggddgddggddgddggddgddggddgddggddgddggddgdd ggd!d"gd#d$ggd!d"gddggddgd%d&ggd'd(gd)d*ggd+d,gd)d*ggdd gd-d.ggd#d$gd/d0ggd1d2gd'd(ggd3d4gd'd(ggd$d5gd+d,ggd+d,gd6d7ggd-d.gdd8ggd9d:gd1d2ggd;d<gd1d2ggd=d>gd3d4ggd3d4gd;d<ggd?d@gd$d5ggd$d5gdAdBggdCdDgd6d7ggdEdFgd?d@ggdGdHgd?d@ggdAdBgdIdJggdKdLgdCdDggdCdDgd=d>ggdMdNgdEdFggdOdgdGdHggdPdQgdGdHggdRdSgdKdLggdTdUgdKdLggdMdNgdOdggdOdgdVdWggdXdYgdTdUggddZgddggddgd%d&ggd%d&gd9d:ggd9d:gd[d\ggd[d\gdRdSggdRdSgd]d^ggd]d^gd_d`ggd_d`gdadbggdadbgdXdYggdXdYgdcddggdcddgdMdNggdMdNgdedfggdedfgdVdWggdVdWgdgdhggdgdhgdidjggdidjgdkdlggdkdlgdPdQggdPdQgdmdnggdmdngdodpggdodpgdIdJggdIdJgd/d0ggd/d0gddggddgddggddgddqggddqgddrggddrgdd8ggdd8gdd	ggdd	gddZggddgddrggddgd!d"ggddgd)d*ggd=d>gd[d\ggZds Z	e
dtk(  r e	e      Z eed            eedl          yuyu)v    )MultiLineStringPolygon)
polygonizeunary_union)
make_valid   iX     i}     i{     i     ih  i  i   _   iY  F   iV  >   i  n   i  t      i  i  i  i  i2     i)  i  i  i  i  i  i\  ih  i  i  i  i  iI  R   it  i!  im  i`  iv  i  i  i  i  iz  i  iX  ia  i  i  i  i  i<  i  i  iM  i  i  i  i  ic  i  iE  i  i   i  i  i  i  ip  i  i  ik  i1  iN  i  iu  i  ic  iS  ik  ih  i[  ip  id  i  iq  if  i  i  i  i  ik  
   i     iH     i  i%  i[  i  i  iP  c           
         t        | D cg c]  \  }}t        |      t        |      f c}}      }t        |      }t        t	        |            }t        |      }g }t        |j
                  j                        }t        t        |      dz
        D ]0  }	|j                  t        ||	         t        ||	dz            g       2 g }
|D ]  }t        |j
                  j                        }t        t        |      dz
        D ][  }	t        ||	         t        ||	dz            g}t        ||	         t        ||	dz            g}||vsF||vsK|
j                  |       ]  d } ||      } ||
      }
||
fS c c}}w )Nr   c           
          t               }g }| D ]W  }t        t        t        |d         t        |d         f            }||vs6|j                  |       |j	                  |       Y |S )Nr   r   )settuplesortedappendadd)linesseendedupedlinekeys        J/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/pydep/line_works.pydedup_linesz%get_broken_lines.<locals>.dedup_linesn   sf    u 	Dd1gd1g?@AC$t$	     )
r   r   r   listr   exteriorcoordsrangelenr   )r   p1p2mlsunionedpolysoverallouter_lines
ext_coordsiinner_linespolyr)   r"   line_r%   s                   r$   get_broken_linesr8   W   s~   
Hvr2U2Yb	2H
IC#GG$%E% GKg&&--.J3z?Q&' KDA/jQ6G1HIJK K -dmm**+s6{Q' 	-AOT&Q-%89D&)_d6!a%=&9:E;&+&&t,	--	 k*Kk*K##G Is    E<
__main__N)shapely.geometryr   r   shapely.opsr   r   shapely.validationr   r   r8   __name__broken_linesprint r&   r$   <module>rA      s   5 / )N		4[3+N		4[1d)N	 
4[3+N	 
4[3*	N	
 
3Z#sN	 	#Yc
N	 	#YS	N	 
3Z"cN	 	#YS	N	 	#Yc
N	 
3Z#sN	 
3Z#tN	 
3Z#tN	 
3Z#sN	 
3Z#sN	  
4[3+!N	" 
4[3+#N	$ 
3Z#t%N	& 
4[2t*'N	( 
3Z#s)N	* 
4[3++N	, 
4[3+-N	. 
3Z#s/N	0 
3Z#s1N	2 	$Z!T3N	4 
4[3+5N	6 
4[3+7N	8 
4[3+9N	: 
4[3+;N	< 
3Z#s=N	> 
3Z#s?N	@ 
4[3*AN	B C[3*CN	D 
3Z#sEN	F 
3Z#sGN	H D\C;IN	J 
4[3+KN	L C[4+MN	N C[3*ON	P 
3Z#sQN	R D\D$< SN	T D\D$< UN	V C[4+WN	X C[4+YN	Z D\D$< [N	\ Yd]N	^ 
4[3+_N	` 
4[3+aN	b 
4[3+cN	d 
4[4,eN	f D\D$< gN	h D\D$< iN	j D\D$< kN	l D\D$< mN	n D\D#;oN	p C[4+qN	r C[4+sN	t C[4+uN	v C[4*wN	x BZ$yN	z BZ${N	| AYc
}N	~ 
3Z#sN	@ 
3Z#sAN	B 
3Z#sCN	D 
3Z#sEN	F 
3Z#sGN	H 
3Z#sIN	J 
3Z!SKN	L X3xMN	N X4yON	P YD	QN	R YD	SN	T 	#YCUN	V 
3Z#sWN	X 
3Z#tYN	Z 
4[3+[N	b$$N z#E*L	,q/	,q/ r&   