+
    AiG                     $    ^ RI t^RIHt RR ltR# )    N)_spathc           
        V^ 8  d   W P                   ,          p^V,          ^,           3V P                   ^,
          ,          p\        P                  ! V4      V,
          p\        P                  ! WR\        P                  ! V4      ^ R7      p\        P
                  P                  V4      p\        P                  ! WPP                   V3RR7      P                  pV P                  RV V P                  V^,           R ,           p\        P                  ! V4      p	\        P
                  P                  V4      p
\        P                  ! W\        P                  ! V4      ^ R7      p\        P                  ! WP                   V
3RR7      P                  p\        P                  ! V	V\        P                  ! VR
V	P                  R7      ^ R7      p\        P                  ! WP                   V
3RR7      P                  p\        P                  ! WR7      pVP                  WRR7      w  ppV F,  pV\!        V4      ,          pV\        P"                  8w  g   K,   M	  VP%                  X4      pV'       gd   \        P&                  ! V4      p\        P(                  ! VR	RV13,          VR	V^,           R13,          .^R7      p\        P*                  ! V4      pVX3# )a  Find the shortest path through an n-d array from one side to another.

Parameters
----------
arr : ndarray of float64
reach : int, optional
    By default (``reach = 1``), the shortest path can only move
    one row up or down for every step it moves forward (i.e.,
    the path gradient is limited to 1). `reach` defines the
    number of elements that can be skipped along each non-axis
    dimension at each step.
axis : int, optional
    The axis along which the path must always move forward (default -1)
output_indexlist : bool, optional
    See return value `p` for explanation.

Returns
-------
p : iterable of int
    For each step along `axis`, the coordinate of the shortest path.
    If `output_indexlist` is True, then the path is returned as a list of
    n-d tuples that index into `arr`. If False, then the path is returned
    as an array listing the coordinates of the path along the non-axis
    dimensions for each step along the axis dimension. That is,
    `p.shape == (arr.shape[axis], arr.ndim-1)` except that p is squeezed
    before returning so if `arr.ndim == 2`, then
    `p.shape == (arr.shape[axis],)`
cost : float
    Cost of path.  This is the absolute sum of all the
    differences along the path.

)axisF)orderN)dtype)offsetsF)find_all_ends:NNN)ndimnpindicesinsertonesmultiplyreducereshapeTshapezerosfullr   r   MCP_Diff
find_coststupleinf	tracebackarrayconcatenatesqueeze)arrreachr   output_indexlistoffset_ind_shapeoffset_indicesoffset_sizer	   non_axis_shapenon_axis_indicesnon_axis_sizestart_indicesstartsend_indicesendsmcostsr   endcosts   &&&&                Q/var/www/html/photoedit/myenv/lib/python3.14/site-packages/skimage/graph/spath.pyshortest_pathr2      s-   H axE	A'388a<8ZZ 01E9NYY~RWW=M5NUVWN++$$%56Kjj((K)@LNNG
 YYu%		$(*(==Nzz.1KK&&~6MII.bhh~6NUVWMZZ-'@LNNF))
*:*@*@A	K ::kHHm#<CHJJD 	-A||F|FE9 U3Z 266>  C IHHY'	NNq%4%x )AtaxzM":;!
	 JJy)	d?    )   r   F)numpyr    r   r2    r3   r1   <module>r8      s     Nr3   