
    9i{                        S r SSKrSSKrSSKrSSKrSSKrSSKJs  J	s  J
r
  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJ	r	  SSKJr  \R:                  " \5      rS r  " S S\5      r!g)z.
This module provides a client class for SMS.
    N)utils)bce_v1_signer)BceBaseClient)BceClientConfiguration)BceClientError)BceServerError)bce_http_client)http_headers)http_methods)sms)requiredc                    U R                   S-  [        R                  R                  S-  :X  a  [	        S5      eS nU R                  5       nU(       Ga&  [        R                  " U5      nSU;   a  SU;   a~  SU;   ax  US   nUS:w  a  [        US   US   US   S9nGOUR                  R                  [        R                  " U[        R                  S9R                  5        U R                  5         g	U R                   S-  [        R                  R                  S-  :X  aW  UR                  R                  [        R                  " U[        R                  S9R                  5        U R                  5         g	O/U R                   S-  [        R                  R                  S-  :X  a  g	Uc(  [        U R                  UR                   R"                  S
9nU R                   Ul        Ue)Nd   z#Can not handle 1xx http status codemessagecode	requestId1000)r   
request_id)object_hookT)r   )statushttpclientCONTINUEr   readjsonloadsr   __dict__updater   dict_to_python_objectcloseOKreasonmetadatabce_request_idstatus_code)http_responseresponsebsebodydr_codes         `/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/baidubce/services/sms/sms_client.py_parse_resultr-   ,   s   c!T[[%9%9C%??BCC
CDJJt>fkkQ.>vYF$Qy\*+F)01+@ !!((JJt1L1LMVVX##%!!C'4;;>>C+??$$

4U-H-HIRRT!	 @
 
			#t{{~~';	;
{]11h>O>O>^>^_#**CO
I    c                   R   \ rS rSrSrS'S jr\" \S9S 5       r\" \	\	\	\	\
S9  S(S j5       r\" \	\	\	S	9  S)S
 j5       r\" \	\	\	\	S9  S(S j5       r\" \	S9S'S j5       r\" \	S9S'S j5       r\" \	\	\	\	\	S9S'S j5       r\" \	\	\	\	\	S9S*S j5       r\" \	S9S'S j5       r\" \	S9S'S j5       rS'S jr\" \\\\\S9 S'S j5       r\S*S j5       r\S*S j5       r\  S+S j5       rS r  S,S jr\" \	\	S9S-S  j5       r  S.S! jr\" \	S"9S'S# j5       r\" \	\	S$9  S/S% j5       r S&r!g)0	SmsClientN   z
Sms sdk client
Nc                 X    Ub  U R                  U5        [        R                  " X5        g N)_check_config_typer   __init__selfconfigs     r,   r5   SmsClient.__init__S   s$    ##F+t,r.   )r8   c                     g)NT r6   s     r,   r4   SmsClient._check_config_typeX   s    r.   )signature_idtemplate_idtypemobilecontent_var_dictc	                     UUUUUUUS.n	U R                  [        R                  S[        R                  " U	5      USS9$ )u  
Send message

:param signature_id: The unique code identifying message signature, can be obtained from cloud.baidu.com
:type  signature_id: string or unicode

:param template_id: The unique code identifying message content template, can be obtained from cloud.baidu.com
:type  template_id: string or unicode

:param mobile: The target mobile, use "," as separators if you have multiple targets.
:type  mobile: string or unicode

:param content_var_dict: A map like "{"template param name": "template param content"}
:type  content_var_dict: dict

:param config: None
:type  config: BceClientConfiguration

:param custom: The user-defined param
:type  custom: string or unicode

:param user_ext_id: The user-defined channel code
:type  user_ext_id: string or unicode

:param merchant_url_id: The id of callback url specified by user
:type  merchant_url_id: string or unicode

:return: Object
    {
      "request_id": "5e6dacd5-8815-4183-8255-4ff079bf24e6",
      "code": "1000",
      "message": "成功",
      "data": [
        {
          "code": "1000",
          "message": "成功",
          "mobile": "13800138000",
          "message_id": "e325ea68-02c1-47ad-8844-c7b93cafaeba_13800138000"
        }
      ]
    }
)signatureIdtemplater@   
contentVarcustom	userExtIdmerchantUrlIdsendSms   )r)   r8   api_version_send_requestr   POSTr   dumps)
r7   r=   r>   r@   rA   r8   rF   user_ext_idmerchant_url_iddatas
             r,   send_messageSmsClient.send_message\   sQ    \ (#*$,
 !!,"3"3YTZZPTEU^drs!ttr.   )contentcontent_typecountry_typec                    UUUS.nU(       a  X8S'   U(       a  XXS'   U(       a  XhS'   [         R                  " U R                  [        R                  SS[
        R                  " 5       0[        R                  " U5      USS95      $ )	aT  
Create signature
:param content: Signature content, only Chinese and English characters and numbers are allowed.
:type  content: string or unicode

:param content_type: Signature type, one of "Enterprise, MobileApp, Web, WeChatPublic, Brand, Else"
:type  content_type: string or unicode

:param description: Description of the signature
:type  description: string or unicode

:param country_type: The country or region in which the template can be used. Default value is "DOMESTIC".
                     The value of countryType could be DOMESTIC or INTERNATIONAL or GLOBAL.
                     DOMESTIC: the template can only be used in Mainland China.
                     INTERNATIONAL: the template can only be used out of Mainland China.
                     GLOBAL: the template can only be used all over the world.
:type  country_type: string or unicode

:param signature_file_base_64: The base64 encoding string of the signature certificate picture
:type  signature_file_base_64: string or unicode

:param signature_file_format: The format of the signature certificate picture, only one of JPG, PNG,
                              JPEG allowed.
:type  signature_file_format: string or unicode

:param config: None
:type  config: BceClientConfiguration
:return: Object
    {
      "signature_id": "sms-sign-WWejWQ54455",
      "status": "SUBMITTED"
    }

rU   contentTypecountryTypedescriptionsignatureFileBase64signatureFileFormatsignatureApplyclientToken   paramsr)   r8   rK   )	modelCreateSignatureResponserM   r   rN   uuiduuid4r   rO   )	r7   rU   rV   r\   rW   signature_file_base_64signature_file_formatr8   rR   s	            r,   create_signatureSmsClient.create_signature   s    L ''

 "-!*@&' *?&',,T-?-?@Q@QScHUW[WaWaWcGdEIZZPTEU^drs .@ .u v 	vr.   )rU   rV   rW   r=   c	           	          UUUS.n	U(       a  XYS'   U(       a  XiS'   U(       a  XyS'   U R                  [        R                  SU[        R                  " U	5      USS9$ )a  
Update signature
:param content: Signature content
:type  content: string or unicode

:param content_type: Signature type, one of "Enterprise, MobileApp, Web, WeChatPublic, Brand, Else"
:type  content_type: string or unicode

:param signature_id: The unique code identifying the signature
:type  signature_id: string or unicode

:param description: Description of the signature
:type  description: string or unicode

:param country_type: The country or region in which the template can be used.
                     The value of countryType could be DOMESTIC or INTERNATIONAL or GLOBAL.
                     DOMESTIC: the template can only be used in Mainland China.
                     INTERNATIONAL: the template can only be used out of Mainland China.
                     GLOBAL: the template can only be used all over the world.
:type  country_type: string or unicode

:param signature_file_base_64: The base64 encoding string of the signature certificate picture
:type  signature_file_base_64: string or unicode

:param signature_file_format: The format of the signature certificate picture, only one of JPG, PNG,
                              JPEG allowed.
:type  signature_file_format: string or unicode

:param config: None
:type  config: BceClientConfiguration
:return: Object
    {
      "content": "Baidu",
      "content_type": "Enterprise",
      "description": "test sdk",
      "country_type": "DOMESTIC",
      "signature_file_base64": "test-string-base64encoded",
      "signature_file_format": "png"
    }
rY   r\   r]   r^   r_   ra   )keyr)   r8   rK   rM   r   PUTr   rO   )
r7   rU   rV   rW   r=   r\   rh   ri   r8   rR   s
             r,   update_signatureSmsClient.update_signature   sr    X ''
 "-!*@&' *?&'!!,"2"24D,'+zz$'7TU " W 	Wr.   )r=   c           
      l    [         R                  " U R                  [        R                  SUUSS95      $ )a  
Get signature detail
:param signature_id: The unique code identifying the signature
:type  signature_id: string or unicode

:param config: None
:type  config: BceClientConfiguration

:return: Object
    {
      "signature_id": "sms-sign-WWejWQ54455",
      "user_id": "bbede3f8c42e4113b6971fd09a57f494",
      "content": "Baidu",
      "content_type": "MobileApp",
      "description": "test sdk",
      "review": "",
      "status": "SUBMITTED",
      "country_type": "GLOBAL",
    }
r_   ra   rm   r8   rK   )rd   GetSignatureResponserM   r   GETr7   r=   r8   s      r,   get_signature_detailSmsClient.get_signature_detail  s@    , ))$*<*<\=M=MO_eqDJXY += +[ \ 	\r.   c                 B    U R                  [        R                  SXSS9$ )z
Delete signature
:param signature_id: The unique code identifying the signature
:type  signature_id: string or unicode

:param config: None
:type  config: BceClientConfiguration

:return:
r_   ra   rs   rM   r   DELETErv   s      r,   delete_signatureSmsClient.delete_signature  s&     !!,"5"57G\vw!xxr.   )namerU   sms_typerW   r\   c                     UUUUUS.n[         R                  " U R                  [        R                  SS[
        R                  " 5       0[        R                  " U5      USS95      $ )aM  
Create template with specific name and content

:param name: Template name
:type  name: string or unicode

:param content: Template content like 'this is ${APP}, your code is ${VID}'
:type  content: string or unicode

:param sms_type: Business type of the template content, can be obtained from cloud.baidu.com
:type  sms_type: string or unicode

:param country_type: The country or region in which the template can be used.
                     The value of countryType could be DOMESTIC or INTERNATIONAL or GLOBAL.
                     DOMESTIC: the template can only be used in Mainland China.
                     INTERNATIONAL: the template can only be used out of Mainland China.
                     GLOBAL: the template can only be used all over the world.
:type  country_type: string or unicode

:param description: Description of the template
:type  description: string or unicode

:param config: None
:type  config: BceClientConfiguration

:return: Object
    {
        "template_id": "sms-tmpl-wHoJXL09355",
        "status": "SUBMITTED",
    }

:rtype: baidubce.bce_response.BceResponse
)r~   rU   smsTyper[   r\   rD   r`   ra   rb   )	rd   CreateTemplateResponserM   r   rN   rf   rg   r   rO   )r7   r~   rU   r   rW   r\   r8   rR   s           r,   create_templateSmsClient.create_template*  st    F "#+*	, ++D,>,>|?P?PR\GTVZV`V`VbFcDHJJtDT]cqr -? -t u 	ur.   )r>   r~   rU   r   rW   c           	          UUUUS.nU(       a  XhS'   U R                  [        R                  SU[        R                  " U5      USS9$ )a0  
Update template when audition failed.
:param template_id: The unique code identifying the template
:type  template_id: string or unicode

:param name: the name of template
:type  name: string or unicode

:param content: the content of template,such as 'this is ${APP}, your code is ${VID}'
:type  content: string or unicode

:param sms_type: The business type of the template content, can be obtained from cloud.baidu.com
:type  sms_type: string or unicode

:param country_type: The country or region in which the template can be used.
                     The value of countryType could be DOMESTIC or INTERNATIONAL or GLOBAL.
                     DOMESTIC: the template can only be used in Mainland China.
                     INTERNATIONAL: the template can only be used out of Mainland China.
                     GLOBAL: the template can only be used all over the world.
:type  country_type: string or unicode

:param description: Description of the template
:type  description: string or unicode

:param config: None
:type  config: BceClientConfiguration

:return:
)r~   rU   r   r[   r\   rD   ra   )http_methodfunction_namerm   r)   r8   rK   rn   )	r7   r>   r~   rU   r   rW   r\   r8   rR   s	            r,   update_templateSmsClient.update_templateW  s\    > "#+- "-!!l.>.>j^i'+zz$'7TU " W 	Wr.   )r>   c           
      l    [         R                  " U R                  [        R                  SUUSS95      $ )u  
Get template detail
:param template_id: The ID of message template
:type  template_id: string or unicode

:param config: None
:type  config: BceClientConfiguration

:return:
    {
      "template_id": "sms-tmpl-wHoJXL09355",
      "user_id": "bbede3f8c42e4113b6971fd09a57f494",
      "name": "TemplateNameTest",
      "content": "${code}",
      "sms_type": "CommonNotice",
      "description": "test modify",
      "review": "通过",
      "status": "APPROVED",
      "country_type": "INTERNATIONAL",
    }
rD   ra   )r   rm   r8   rK   )rd   GetTemplateResponserM   r   ru   r7   r>   r8   s      r,   get_template_detailSmsClient.get_template_detail  s@    . ((););L<L<L\flwCIWX *< *Z [ 	[r.   c                 D    U R                  [        R                  SUUSS9$ )z
Delete template
:param template_id: The ID of message template
:type  template_id: string or unicode

:param config: None
:type  config: BceClientConfiguration

:return:
rD   ra   )r   r   rm   r8   rK   rz   r   s      r,   delete_templateSmsClient.delete_template  s1     !!l.A.AQ[al)/Q " @ 	@r.   c           
      p    [         R                  " U R                  [        R                  SSS0USS95      $ )a7  
Query quota and rate-limit detail
:param config: None
:type  config: BceClientConfiguration

:return:
    {
      "quota_oer_day": 100,
      "quota_per_month": 1000,
      "quota_remain_today": 100,
      "quota_remain_this_month": 1000,
      "apply_check_status": "PASS",
      "check_reply": "",
      "apply_quota_per_day": 10,
      "apply_quota_per_month": 10,
      "rate_limit_per_mobile_per_sign_by_minute": 5,
      "rate_limit_per_mobile_per_sign_by_hour": 10,
      "rate_limit_per_mobile_per_sign_by_day": 50,
      "rate_limit_white_list": true
    }
quota	userQuery ra   r   rc   r8   rK   )rd   QueryQuotaResponserM   r   ru   r6   s     r,   query_quota_rateSmsClient.query_quota_rate  sF    , ''(:(:<;K;K[bCNPRBS\bpq ); )s t 	tr.   )quota_per_dayquota_per_month(rate_limit_per_mobile_per_sign_by_minute&rate_limit_per_mobile_per_sign_by_hour%rate_limit_per_mobile_per_sign_by_dayc                 |    UUUUUS.nU R                  [        R                  S[        R                  " U5      USS9$ )a  

:param quota_per_day: Upper bound of the response-success request counts in one natural day.
:type  quota_per_day: int

:param quota_per_month: Upper bound of the response-success request counts in one natural month.
:type  quota_per_month: int

:param rate_limit_per_mobile_per_sign_by_minute: The limit with same mobile and signature in one minute
:type  rate_limit_per_mobile_per_sign_by_minute: int

:param rate_limit_per_mobile_per_sign_by_hour: Hourly limit with same mobile and signature
:type  rate_limit_per_mobile_per_sign_by_hour: int

:param rate_limit_per_mobile_per_sign_by_day: Daily rate limit with same mobile and signature
:type  rate_limit_per_mobile_per_sign_by_day: int

:param config: None
:type  config: BceClientConfiguration

:return:
)quotaPerDayquotaPerMonth!rateLimitPerMobilePerSignByMinuterateLimitPerMobilePerSignByHourrateLimitPerMobilePerSignByDayr   ra   r   r)   r8   rK   rn   )r7   r   r   r   r   r   r8   rR   s           r,   update_quota_rateSmsClient.update_quota_rate  sT    6 ),1Y/U.S
 !!,"2"2'PTPZPZ[_P`)/Q " @ 	@r.   c                 L    [         R                  " [        R                  X5      $ r3   )r   
append_urir   URL_PREFIX_V3r8   r   rm   s      r,   _get_path_v3SmsClient._get_path_v3  s     1 1=FFr.   c                 L    [         R                  " [        R                  X5      $ r3   )r   r   r   URL_PREFIX_V3_2r   s      r,   _get_path_v3_2SmsClient._get_path_v3_2  s     3 3]HHr.   c           
      0   / SQnUb  [        U5      S:X  av  / nU H]  n	U	R                  5       R                  5       n
U
R                  [        R
                  5      (       d  X;   d  ML  UR                  U
5        M_     UR                  5         OnU HX  n	U	R                  5       R                  5       n
U
R                  [        R
                  5      (       d  MG  UR                  U
5        MZ     UR                  5         [        R                  " U UUUUUUU5      $ )N)s   hosts   content-md5s   content-lengths   content-typer   )
lenstriplower
startswithr
   
BCE_PREFIXappendsortr   sign)credentialsr   pathheadersrc   	timestampexpiration_in_secondsheaders_to_signheaders_to_sign_listkk_lowers              r,   _bce_sms_signSmsClient._bce_sms_sign  s    
 1
 "c/&:a&? O'')//+%%l&=&=>>'Ba#**73    "'')//+%%l&=&=>>#**73    "!!+"-"&")"("+"7"13 	3r.   c                     Uc  U R                   $ U R                  U5        [        R                  " U R                   5      nUR                  U5        U$ r3   )r8   r4   copymerge_non_none_values)r7   r8   
new_configs      r,   _merge_configSmsClient._merge_config  sE    >;;##F+4;;/J,,V4r.   c
           
          U R                  U5      n[        R                  [        R                  S.U	   " XrU5      n
Uc  [        nUc  SSS.n[
        R                  " U[        R                  U/XUXV5      $ )N)rJ   ra   s   */*s   application/json;charset=utf-8)s   Accepts   Content-Type)r   r0   r   r   r-   r	   send_requestr   )r7   r   r   rm   r)   r   rc   r8   body_parserrK   r   s              r,   rM   SmsClient._send_request  s    ##F+))++%c; 'K?"(;\]G++FI4K4Kk]\gos,3= 	=r.   )r?   phonec                     UUUS.nU(       a  XGS'   U(       a  XWS'   U R                  [        R                  S[        R                  " U5      USS9$ )ag  

:param type: The value of type could be MerchantBlack or SignatureBlack
:type type: str

:param country_type: The value of countryType could be DOMESTIC or INTERNATIONAL
:type country_type: str

:param sms_type: Mobile of black, Support multiple mobile phone numbers, up to 200 maximum, separated by comma.
:type sms_type: str

:param signature_id_str: When the value of "type" is "SignatureBlack", this field is required.
:type signature_id_str: str

:param phone: When the value of "type" is "SignatureBlack", this field is required.
:type phone: str

:param config: None
:type  config: BceClientConfiguration

)r?   r   r[   r   signatureIdStr	blacklistra   r   rL   )r7   r?   r   rW   r   signature_id_strr8   rR   s           r,   create_mobile_blackSmsClient.create_mobile_black'  sd    0 '

 &O%5!"!!,"3"3;UYU_U_`dUe)/Q " @ 	@r.   c
           
         0 n
U(       a  XS'   U(       a  X*S'   U(       a  X:S'   U(       a  XJS'   U(       a  XZS'   U(       a  XjS'   U(       a  XzS'   U(       a  XS'   [         R                  " U R                  [        R                  S	XS
S95      $ )a&  
Get mobile black
:param phone: Support multiple mobile phone numbers, up to 200 maximum, separated by comma.
:type phone: str

:param country_type: The value of countryType could be DOMESTIC or INTERNATIONAL
:type  country_type: str

:param sms_type: smsType
:type  sms_type: str

:param signature_id_str: signatureIdStr
:type  signature_id_str: str

:param start_time: format is yyyy-MM-dd
:type  start_time: str

:param end_time: format is yyyy-MM-dd
:type  end_time: str

:param page_no: The current page number
:type  page_no: int

:param page_size: The current page size, range from 1 to 99999
:type  page_size: int

:param config: None
:type  config: BceClientConfiguration

:return: Object
    {
        "blacklists": [
            {
                "phone": "17611111111",
                "type": "SignatureBlack",
                "smsType": "CommonNotice",
                "signatureIdStr": "1234",
                "updateDate": "2023-07-14 14:23:41"
            }
        ],
        "totalCount": 1,
        "pageNo": 1,
        "pageSize": 100
    }
r   r[   r   r   	startTimeendTimepageNopageSizer   ra   r   )rd   GetMobileBlackResponserM   r   ru   )r7   r   rW   r   r   
start_timeend_timepage_no	page_sizer8   
req_paramss              r,   get_mobile_blackSmsClient.get_mobile_blackL  s    ` 
"'w(4}%$,y!+;'(&0{#$,y!#*x %.z"++D,>,>|?O?O_jFPmn -? -p q 	qr.   )phonesc                 L    SU0nU R                  [        R                  SUUSS9$ )z
Delete mobile_black
:param phones: Support multiple mobile phone numbers, up to 200 maximum, separated by comma.
:type  phones: string

:param config: None
:type  config: BceClientConfiguration

:return:
r   zblacklist/deletera   r   r   rc   r8   rK   rz   )r7   r   r8   r   s       r,   delete_mobile_blackSmsClient.delete_mobile_black  s?     f

 !!l.A.AQclv)/Q " @ 	@r.   )r   r   c           
          US-   US-   USS.nU(       a  XHS'   U(       a  XXS'   U(       a  XhS'   [         R                  " U R                  [        R                  SXS	S
95      $ )u  
Get messages statistics list
:param start_time: The start of time condition, format: yyyy-MM-dd
:type  start_time: str

:param end_time: The end of time condition, format: yyyy-MM-dd
:type  end_time: str

:param sms_type: Queried message type, "all" as default
:type  sms_type: str

:param signature_id: Queried signature id
:type  signature_id: str

:param template_code: Queried template code, for instance: "sms-tmpl-xxxxxxxx"
:type  template_code: str

:param country_type: Queried country type, available values: "domestic", "international"
:type  country_type: str

:param config: None
:type  config: BceClientConfiguration

:return: Object:
    {
        "statisticsResults": [
            {
                "datetime": "合计",
                "countryAlpha2Code": "",
                "submitLongCount": "10",
                "submitCount": "100",
                "deliverSuccessCount": "99",
                "deliverSuccessLongCount": "10",
                "deliverFailureCount": "1",
                "unknownCount": "0",
                "deliverSuccessProportion": "0.99",
                "deliverFailureProportion": "0.01",
                "notExistCount": "0",
                "signatureOrTemplateCount": "0",
                "abnormalCount": "0",
                "overclockingCount": "0",
                "otherErrorCount": "0",
                "blacklistCount": "0",
                "routeErrorCount": "0",
                "issueFailureCount": "0",
                "parameterErrorCount": "0",
                "illegalWordCount": "0",
                "anomalyCount": "1",
                "unknownErrorCount": "0",
                "receiptProportion": "1.0",
                "unknownProportion": "0",
                "responseSuccessCount": "100",
                "responseTimeoutCount": "0",
                "responseSuccessProportion": "1.0"
            },
            {
                "datetime": "2023-10-30",
                "countryAlpha2Code": "",
                "submitLongCount": "10",
                "submitCount": "100",
                "deliverSuccessCount": "99",
                "deliverSuccessLongCount": "10",
                "deliverFailureCount": "1",
                "unknownCount": "0",
                "deliverSuccessProportion": "0.99",
                "deliverFailureProportion": "0.01",
                "notExistCount": "0",
                "signatureOrTemplateCount": "0",
                "abnormalCount": "0",
                "overclockingCount": "0",
                "otherErrorCount": "0",
                "blacklistCount": "0",
                "routeErrorCount": "0",
                "issueFailureCount": "0",
                "parameterErrorCount": "0",
                "illegalWordCount": "0",
                "anomalyCount": "1",
                "unknownErrorCount": "0",
                "receiptProportion": "1.0",
                "unknownProportion": "0",
                "responseSuccessCount": "100",
                "responseTimeoutCount": "0",
                "responseSuccessProportion": "1.0"
            },
        ]
    }
z	 00:00:00z	 23:59:59day)r   r   r   	dimensionr[   rC   templateCodesummaryra   r   )rd   ListStatisticsResponserM   r   ru   )	r7   r   r   r   rW   r=   template_coder8   r   s	            r,   list_statisticsSmsClient.list_statistics  s~    x $k1+-	

 (4}%(4}%)6~&++D,>,><K[K[kt3=Z[ -? -] ^ 	^r.   r;   r3   )NNNN)NDOMESTICNNN)NN)r   i  N)NNNNNNNrJ   )NNN)	NNNNNNNNN)alldomesticNNN)"__name__
__module____qualname____firstlineno____doc__r5   r   r   r4   strdictrS   rj   rp   rw   r|   r   r   r   r   r   intr   staticmethodr   r   r   r   rM   r   r   r   r   __static_attributes__r;   r.   r,   r0   r0   N   s\   -
 +, - 3Cc#X\]dh7;6u ^6up c#>U_Y]1v ?1vf c#CP^bY]7W Q7Wr 3\  \0 3y  y 3cQTU*u V*uX #CsQTU%W V%WN #[ [2 #@ @t2 C_b58`ce qu @e @D G G I I 9=&*3 3@ hlAB=  3c""@ #"@H ptMQJqX S@ @$ s+Q[FJk^ ,k^r.   r0   )"r   r   r   loggingrf   http.clientr   baidubce.services.sms.modelservicesr   rd   baidubcer   baidubce.authr   baidubce.bce_base_clientr   !baidubce.bce_client_configurationr   baidubce.exceptionr   r   baidubce.httpr	   r
   r   baidubce.servicesbaidubce.utilsr   	getLoggerr   _loggerr-   r0   r;   r.   r,   <module>r     sh   "      + +  ' 2 D - - ) & & ! #


H
%DI^ I^r.   