PK���ȼRY��������€��� �v3.phpUT �øŽg‰gñ“gux �õ��õ��½T]kÛ0}߯pEhìâÙM7X‰çv%”v0֐µ{)Aå:6S$!ÉMJèߕ?R÷!>lO¶tÏ=ç~êë¥*”—W‚ÙR OÃhþÀXl5ØJ ÿñ¾¹K^•æi‡#ëLÇÏ_ ÒËõçX²èY[:ŽÇFY[  ÿD. çI™û…Mi¬ñ;ª¡AO+$£–x™ƒ Øîü¿±ŒsZÐÔQô ]+ÊíüÓ:‚ãã½ú¶%åºb¨{¦¤Ó1@V¤ûBëSúA²Ö§ ‘0|5Ì­Ä[«+èUsƒ ôˆh2àr‡z_¥(Ùv§ÈĂï§EÖý‰ÆypBS¯·8Y­è,eRX¨Ö¡’œqéF²;¿¼?Ø?Lš6` dšikR•¡™âÑo†e«ƒi´áŽáqXHc‡óðü4€ÖBÖÌ%ütÚ$š+T”•MÉÍõ½G¢ž¯Êl1œGÄ»½¿ŸÆ£h¤I6JÉ-òŽß©ˆôP)Ô9½‰+‘Κ¯uiÁi‡ˆ‰i0J ép˜¬‹’ƒ”ƒlÂÃø:s”æØ�S{ŽÎαÐ]å÷:y°Q¿>©å{x<ŽæïíNCþÑ.Mf?¨«2ý}=ûõýî'=£§ÿu•Ü(—¾IIa­"éþ@¶�¿ä9?^-qìÇÞôvŠeÈc ðlacã®xèÄ'®âd¶ çˆSEæódP/ÍÆv{Ô)Ó ?>…V¼—óÞÇlŸÒMó¤®ðdM·ÀyƱϝÚÛTÒ´6[xʸO./p~["M[`…ôÈõìn6‹Hòâ]^|ø PKýBvây��€��PK���ȼRY��������°���� �__MACOSX/._v3.phpUT �øŽg‰gþ“gux �õ��õ��c`cg`b`ðMLVðVˆP€'qƒøˆŽ!!AP&HÇ %PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Producer (���d�o�m�p�d�f� �2�.�0�.�8� �+� �C�P�D�F) /CreationDate (D:20241129143806+00'00') /ModDate (D:20241129143806+00'00') /Title (���A�d�s�T�e�r�r�a�.�c�o�m� �i�n�v�o�i�c�e) >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 904 >> stream x���]o�J���+F�ͩ����su\ �08=ʩzရ���lS��lc� "Ց� ���wޙ�%�R�DS��� �OI�a`� �Q�f��5����_���םO�`�7�_FA���D�Џ.j�a=�j����>��n���R+�P��l�rH�{0��w��0��=W�2D ����G���I�>�_B3ed�H�yJ�G>/��ywy�fk��%�$�2.��d_�h����&)b0��"[\B��*_.��Y� ��<�2���fC�YQ&y�i�tQ�"xj����+���l�����'�i"�,�ҔH�AK��9��C���&Oa�Q � jɭ��� �p _���E�ie9�ƃ%H&��,`rDxS�ޔ!�(�X!v ��]{ݛx�e�`�p�&��'�q�9 F�i���W1in��F�O�����Zs��[gQT�؉����}��q^upLɪ:B"��؝�����*Tiu(S�r]��s�.��s9n�N!K!L�M�?�*[��N�8��c��ۯ�b�� ��� �YZ���SR3�n�����lPN��P�;��^�]�!'�z-���ӊ���/��껣��4�l(M�E�QL��X ��~���G��M|�����*��~�;/=N4�-|y�`�i�\�e�T�<���L��G}�"В�J^���q��"X�?(V�ߣXۆ{��H[����P�� �c���kc�Z�9v�����? �a��R�h|��^�k�D4W���?Iӊ�]<��4�)$wdat���~�����������|�L��x�p|N�*��E� �/4�Qpi�x.>��d����,M�y|4^�Ż��8S/޾���uQe���D�y� ��ͧH�����j�wX � �&z� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj xref 0 10 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000284 00000 n 0000000313 00000 n 0000000514 00000 n 0000000617 00000 n 0000001593 00000 n 0000001700 00000 n trailer << /Size 10 /Root 1 0 R /Info 5 0 R /ID[] >> startxref 1812 %%EOF
Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 131
_Kf>>bdZddlZddlZddlmZmZmZddlmZddl m Z ddl m Z ddlmZddlmZdd lmZdd lmZdd lmZddlmcmZdd lm Z mZer ddlZdd lm Z dZ!e!e!zZ"ej#e$Z%ddZ&dZ'dZ(dZ)GddeZGddZ*GddeZ+dS)azAbstractions over S3's upload/download operations. This module provides high level abstractions for efficient uploads/downloads. It handles several things for the user: * Automatically switching to multipart transfers when a file is over a specific size threshold * Uploading/downloading a file in parallel * Progress callbacks to monitor transfers * Retries. While botocore handles retries for streaming uploads, it is not possible for it to handle retries for streaming downloads. This module handles retries for both cases so you don't need to implement any retry logic yourself. This module has a reasonable set of defaults. It also allows you to configure many aspects of the transfer process including: * Multipart threshold size * Max parallel downloads * Socket timeouts * Retry amounts There is no support for s3->s3 multipart copies at this time. .. _ref_s3transfer_usage: Usage ===== The simplest way to use this module is: .. code-block:: python client = boto3.client('s3', 'us-west-2') transfer = S3Transfer(client) # Upload /tmp/myfile to s3://bucket/key transfer.upload_file('/tmp/myfile', 'bucket', 'key') # Download s3://bucket/key to /tmp/myfile transfer.download_file('bucket', 'key', '/tmp/myfile') The ``upload_file`` and ``download_file`` methods also accept ``**kwargs``, which will be forwarded through to the corresponding client operation. Here are a few examples using ``upload_file``:: # Making the object public transfer.upload_file('/tmp/myfile', 'bucket', 'key', extra_args={'ACL': 'public-read'}) # Setting metadata transfer.upload_file('/tmp/myfile', 'bucket', 'key', extra_args={'Metadata': {'a': 'b', 'c': 'd'}}) # Setting content type transfer.upload_file('/tmp/myfile.json', 'bucket', 'key', extra_args={'ContentType': "application/json"}) The ``S3Transfer`` class also supports progress callbacks so you can provide transfer progress to users. Both the ``upload_file`` and ``download_file`` methods take an optional ``callback`` parameter. Here's an example of how to print a simple progress percentage to the user: .. code-block:: python class ProgressPercentage(object): def __init__(self, filename): self._filename = filename self._size = float(os.path.getsize(filename)) self._seen_so_far = 0 self._lock = threading.Lock() def __call__(self, bytes_amount): # To simplify we'll assume this is hooked up # to a single filename. with self._lock: self._seen_so_far += bytes_amount percentage = (self._seen_so_far / self._size) * 100 sys.stdout.write( " %s %s / %s (%.2f%%)" % ( self._filename, self._seen_so_far, self._size, percentage)) sys.stdout.flush() transfer = S3Transfer(boto3.client('s3', 'us-west-2')) # Upload /tmp/myfile to s3://bucket/key and print upload progress. transfer.upload_file('/tmp/myfile', 'bucket', 'key', callback=ProgressPercentage('/tmp/myfile')) You can also provide a TransferConfig object to the S3Transfer object that gives you more fine grained control over the transfer. For example: .. code-block:: python client = boto3.client('s3', 'us-west-2') config = TransferConfig( multipart_threshold=8 * 1024 * 1024, max_concurrency=10, num_download_attempts=10, ) transfer = S3Transfer(client, config) transfer.upload_file('/tmp/foo', 'bucket', 'key') N)PathLikefspathgetpid)HAS_CRT) ClientError)RetriesExceededError)NonThreadedExecutor)TransferConfig)TransferManager)BaseSubscriber)OSUtils)rS3UploadFailedError)create_crt_transfer_manageric^t|rQt||}|?tdt dt j|Stdt dt jt|||S)aCreates a transfer manager based on configuration :type client: boto3.client :param client: The S3 client to use :type config: boto3.s3.transfer.TransferConfig :param config: The transfer config to use :type osutil: s3transfer.utils.OSUtils :param osutil: The os utility to use :rtype: s3transfer.manager.TransferManager :returns: A transfer manager based on parameters provided NzUsing CRT client. pid: z , thread: zUsing default client. pid: )_should_use_crtrloggerdebugr threading get_ident _create_default_transfer_manager)clientconfigosutilcrt_transfer_managers D/opt/alt/python311/lib/python3.11/site-packages/boto3/s3/transfer.pycreate_transfer_managerrsv(:66JJ  + LLU&((UUi>Q>S>SUU   ( ' LLQfhhQQ):M:O:OQQ ,FFF C CCc Ttr.tdrtj}nd}|j}|r,|tjkrt ddSt d|dtd|ddS) N)rFzEAttempting to use CRTTransferManager. Config settings may be ignored.Tz6Opting out of CRT Transfer Manager. Preferred client: z, CRT available: z, Instance Optimized: .) rhas_minimum_crt_versionawscrts3is_optimized_for_systempreferred_transfer_clientlower constantsAUTO_RESOLVE_TRANSFER_CLIENTrr)ris_optimized_instancepref_transfer_clients rrrs&*;77& & A A C C %!;AACC  I$J J J S   t LL 8  8 829 8 84 8 8 8 5rctsdStj} tt|d}t |}n#ttf$rYdSwxYw||kS)z#Not intended for use outside boto3.Fr!) rr# __version__mapintsplittuple TypeError ValueError)minimum_versioncrt_version_strcrt_version_intscrt_version_tuples rr"r"s u(OsO$9$9#$>$>??!"233 z "uu  //s7AA$#A$cFd}|jst}t||||S)zACreate the default TransferManager implementation for s3transfer.N) use_threadsr r )rrr executor_clss rrrs+L  +* 666< @ @@rc beZdZdddZdezddezdddezd d ejf fd Zfd Z xZ S) r max_request_concurrencymax_io_queue_size)max_concurrency max_io_queue dTNc t||||||||jD],} t|| t ||j| -||_| |_dS)a Configuration object for managed S3 transfers :param multipart_threshold: The transfer size threshold for which multipart uploads, downloads, and copies will automatically be triggered. :param max_concurrency: The maximum number of threads that will be making requests to perform a transfer. If ``use_threads`` is set to ``False``, the value provided is ignored as the transfer will only ever use the current thread. :param multipart_chunksize: The partition size of each part for a multipart transfer. :param num_download_attempts: The number of download attempts that will be retried upon errors with downloading an object in S3. Note that these retries account for errors that occur when streaming down the data from s3 (i.e. socket errors and read timeouts that occur after receiving an OK response from s3). Other retryable exceptions such as throttling errors and 5xx errors are already retried by botocore (this default is 5). This does not take into account the number of exceptions retried by botocore. :param max_io_queue: The maximum amount of read parts that can be queued in memory to be written for a download. The size of each of these read parts is at most the size of ``io_chunksize``. :param io_chunksize: The max size of each chunk in the io queue. Currently, this is size used when ``read`` is called on the downloaded stream as well. :param use_threads: If True, threads will be used when performing S3 transfers. If False, no threads will be used in performing transfers; all logic will be run in the current thread. :param max_bandwidth: The maximum bandwidth that will be consumed in uploading and downloading file content. The value is an integer in terms of bytes per second. :param preferred_transfer_client: String specifying preferred transfer client for transfer operations. Current supported settings are: * auto (default) - Use the CRTTransferManager when calls are made with supported environment and settings. * classic - Only use the origin S3TransferManager with requests. Disables possible CRT upgrade on requests. )multipart_thresholdr<multipart_chunksizenum_download_attemptsr= io_chunksize max_bandwidthN)super__init__ALIASsetattrgetattrr9r&) selfrFr>rGrHr?rIr9rJr&alias __class__s rrLzTransferConfig.__init__sz  3$3 3"7*%'    Z C CE D%tz%/@!A!A B B B B&)B&&&rc||jvr-t|j||t||dSN)rMrK __setattr__)rPnamevaluerRs rrUzTransferConfig.__setattr__<sS 4:   GG   4 0% 8 8 8 D%(((((r) __name__ __module__ __qualname__rMMBKBr(r)rLrU __classcell__)rRs@rr r s4+  EFF2X"+"HLCLCLCLCLCLC\)))))))))rr cXeZdZejZejZddZ d dZ d dZdZ dZ dZ dS) S3TransferNc|s|std|r!t|||grtd|t}|t}|r ||_dSt ||||_dS)NzLEither a boto3.Client or s3transfer.manager.TransferManager must be providedzdManager cannot be provided with client, config, nor osutil. These parameters are mutually exclusive.)r3anyr r _managerr)rPrrrmanagers rrLzS3Transfer.__init__Is g #   sFFF344 G  >#%%F >YYF  L#DMMM3FFFKKDMMMrc t|trt|}t|tst d||}|j|||||} |dS#t$r>}td |d ||g|d}~wwxYw)a(Upload a file to an S3 object. Variants have also been injected into S3 client, Bucket and Object. You don't have to use S3Transfer.upload_file() directly. .. seealso:: :py:meth:`S3.Client.upload_file` :py:meth:`S3.Client.upload_fileobj` /Filename must be a string or a path-like objectzFailed to upload {} to {}: {}/N) isinstancerrstrr3_get_subscribersrbuploadresultrrformatjoin) rPfilenamebucketkeycallback extra_args subscribersfuturees r upload_filezS3Transfer.upload_file]s h ) ) (h''H(C(( PNOO O++H55 %% fc:{    MMOOOOO    %/66chh}55q  s=B C9CCcrt|trt|}t|tst d||}|j|||||} |dS#t$r}t|j d}~wwxYw)a0Download an S3 object to a file. Variants have also been injected into S3 client, Bucket and Object. You don't have to use S3Transfer.download_file() directly. .. seealso:: :py:meth:`S3.Client.download_file` :py:meth:`S3.Client.download_fileobj` reN) rgrrrhr3rirbdownloadrkS3TransferRetriesExceededErrorrlast_exception) rProrprnrrrqrsrtrus r download_filezS3Transfer.download_files h ) ) (h''H(C(( PNOO O++H55 '' C:{   9 MMOOOOO . 9 9 9&q'788 8 9s=B B6B11B6c*|sdSt|gSrT)ProgressCallbackInvokerrPrqs rrizS3Transfer._get_subscriberss  4'1122rc|SrT)rPs r __enter__zS3Transfer.__enter__s rc$|jj|dSrT)rb__exit__)rPargss rrzS3Transfer.__exit__s %%%%r)NNNN)NN) rXrYrZr ALLOWED_DOWNLOAD_ARGSALLOWED_UPLOAD_ARGSrLrvr{rirrrrrr_r_Es+A)=LLLL*@D    F@D9999>333 &&&&&rr_ceZdZdZdZdZdS)r}zA back-compat wrapper to invoke a provided callback via a subscriber :param callback: A callable that takes a single positional argument for how many bytes were transferred. c||_dSrT _callbackr~s rrLz ProgressCallbackInvoker.__init__s !rc 0||dSrTr)rPbytes_transferredkwargss r on_progressz#ProgressCallbackInvoker.on_progresss ()))))rN)rXrYrZ__doc__rLrrrrr}r}s< """*****rr}rT),rloggingrosrrrbotocore.compatrbotocore.exceptionsrs3transfer.exceptionsrrys3transfer.futuresr s3transfer.managerr S3TransferConfigr s3transfer.subscribersr s3transfer.utilsr boto3.s3.constantsr$r(boto3.exceptionsr awscrt.s3r# boto3.crtrr\r[ getLoggerrXrrrr"rr_r}rrrrs?oo`''''''''''######++++++322222AAAAAA......111111$$$$$$&&&&&&&&&FFFFFFFF 6555555 "W  8 $ $DDDD<2 0 0 0AAAZ)Z)Z)Z)Z)%Z)Z)Z)zb&b&b&b&b&b&b&b&J * * * * *n * * * * *r