B
    Kbc                 @   sZ   d dl mZ d dlZd dlZd dlmZmZ d dlZd dl	Zd dl
Z
G dd dejZdS )    )unicode_literalsN)
migrationsmodelsc            M   @   s  e Zd ZdZg Zejddejdddddfdej	dddd	fd
ej
ddddddfdej	ddddfdej
ddddddfdejddddgddddfdejddfdejdddd fd!ejddd"d fd#ejd$d%d&d'gd(d)fd*ej
d+d,d-fd.ej
d+dd/d0fd1ejddd2d fd3ejd4d5gd6d7d8fd9ejd4d5gdd:d8fd;ej	dddd<d=fd>ej
dd?dd@dAfgdBdBdCdDejjj fgdEejdFdejdddddfdej	dddd	fd
ej
ddddddfdej	ddddfdej
ddddddfdejddddgddddfdGej
ddHdIddJdKfdLej
ddMddNdAfdOejddPddQdAfdRej
dd?ddSdAfdTej
ddHddIdUdVfdWej	ejjddXdYfdZej
dddIdd[dfd\ejdd]d^d_d`gdddadbfdcej	dddddd=fdeej
ddIddfdAfgdgdgdhdidDejjj fgdEejdjdkej
ejdldddmfdnejddodpfdqejddrdpfdsejddtdpfduejddvdpfdwejddxdpfdyejddzdpfd{ejd|d}dpfd~ejdddpfdejdddpfdejdddpfdejd]d`gddd8fdejd]d`gddd8fdejd]d`gddd8fdejd]d`gddd8fgdddCdejddejdddddfdej	dddd	fd
ej
ddddddfdej	ddddfdej
ddddddfdejddddgddddfdej
dddddAfdej
dd?dddAfdejddddfdej
dd?dddAfdejddddfdej	ddfgdddCdDejjj fgdEejddejdddddfdej	dddd	fd
ej
ddddddfdej	ddddfdej
ddddddfdejddddgddddfdej
ddlddfdej	ddfdejddejjd6gddfdejddd-fdej	ddddd=fgddddidDejjj fgdEejddejdddddfdej	dddd	fd
ej
ddddddfdej	ddddfdej
ddddddfdejddddgddddfdej
ddlddfdej	ddfdejddddfdejddd-fdej	ddddd=fgddddidDejjj fgdEejddejdddddfdej	dddd	fd
ej
ddddddfdej	ddddfdej
ddddddfdejddddgddddfd>ej
d?dddfdej
d?dd-fdejddfdejddddd=fdejd6dddYfdejdddddddddddddddddddddddddddddddddddddddddddddddddddddg5ddd8fdejddddfdejd dgd6dd8fdejd6dddfdej
ddIdd	fd
ejdddddgdddddfdejddgd6dd8fdejddgddd8fdejddddd=fdejddddgdddddfdejdd6dd d!fd"ej
ddd#dd$dfd%ej
dd&dddd'd(fd)ej
dddIdd*dfd+ej
dd+d,d-fd.ej
ddd+dd/dfd0ejdd1ddd2d3fd4ejddd5dYfd6ej
ddd+dd7dfd8ej
ddd+dd9dfd:ej
ddd?dd;dfd<ej
ddd+dd=dfd>ej
ddd+dd?dfd@ej
ddd+ddAdfdBejddddCd=fdDejddddEd=fdFejdddGdYfdHejddddId=fdJejddddKd=fdLejd6ddMdYfdNejddddOd=fdPejddddQd=fdRej
dddddSdfdTejdddUdYfdVejddddWd=fdXejddddYd=fdZej
ddddd[dfd\ejddd]dYfd^ejddddd_d3fd`ejddddad=fdbej
dddddcdfddejdddedYfdfejddddgd=fdhejddddid=fdjej
dddddkdfdlejdddmdYfdnej	ddddod=fdej	ddddpd=fdqej	ddddrd=fdsejddgddtd8fduej
ddHd?ddvdKfg>dwdwdCdDejjj fgdEejdxdejdddddfdejdydfdzej	d{dfdej	ddd|dfd}ej	ddd~dfdejdddddddddddddddddgdddfgdddCdejddejdddddfdej
d?dd-fdej
d#dd-fdejdddpfgdddCdejddejdddddfdej	ddfdej
dMdd-fdej
dMdd-fgdddCdejddejdddddfdejddddddddddddddddddddddddddddddddddddddddddddddddddddddg5dddfdej
dd?dddAfdejdddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐdg/ddאdfdej	ddddfdej
dd?dddAfdejddddfdejddddfdejddddfdej	ddddfg
dddCdejddejdddddfdej
dddd0fdej
d+dd-fdej
dIdd-fgdddCdejddejdddddfdej
ddd-fdej
ddd-fdejdd6ddfdejddddfdej	ddfgdddCdejddejdddddfdej	dddd	fd
ej
ddddddfdej	ddddfdej
ddddddfdejddddgddddfdej
ddddfdej
ddd-fdnej	ddddd=fg	dddCdDejjj fgdEejd dejdddddfdej
d#dd-fdej	ddfdej
ddddd	d
ddgddddfdejddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2g!dd3d8fd4ej
dd#dd5dAfdej
ddHd?dd6dKfd7ej
dd?dd8dAfd9ej
dd:dd;dAfdejddd<dfdejddd=dfduejddHdd>d?fd@ej
dd?ddAdAfdBejddCdDdEdFgd6ddGdHfdejdd6dddId3fdJej
ddIddKdAfdejdd6ddLd?fdMej
ddIddNdAfdej	dddOdfdPejddddQd?fdRej	dddSdfgdTdTdUdidejdVdejdddddfdej	ddfdej	ddfdWej	dWdfdXejdddXdfdYejdddYdfdZejdddd[d?fd\ejddddd\d3fd]ejddddd]d3fd^ej
dddd+dd^d(fd_ejejjjjd`dadbfgdcdcdCdgZ ddS (e  	MigrationTZBioDataidFZID)Zauto_createdprimary_key	serializeverbose_nameZcreate_timeZbaseModel_field_createTime)Zauto_now_addnullr	   Zcreate_user   ZbaseModel_field_createUser)blankeditable
max_lengthr
   r	   Zchange_timeZbaseModel_field_changeTime)Zauto_nowr
   r	   Zchange_userZbaseModel_field_changeUserstatus)r   Z-baseModel_field_dataStatus_option_statusValid)c   /baseModel_field_dataStatus_option_statusInvalid)d   r   )i  r   r   ZbaseModel_field_dataStatus)choicesdefaultr   r	   Zbio_tmpZbioData_field_bioTemplate)r	   Zbio_noZbioData_field_bioIndex)r   r
   r	   Z	bio_indexZbioData_field_templateIndexZbio_type)   Zbio_fingerprint)   Zbio_face)   Zbio_finger_vein)   Zbio_palmZbioData_field_bioType)r   r	   Z	major_ver   Z#bioData_field_algorithmMajorVersion)r   r	   Z	minor_verZ#bioData_field_algorithmMinorVersion)r   r
   r	   Z
bio_formatZbioData_field_algorithmFormatZvalid)FZNO)TZYESr   ZbioData_field_isValid)r   r   r	   ZduressZbioData_field_isDuressZupdate_timeZbioData_field_updateTime)r   r   r
   r	   Zsn2   ZbioData_field_enrollTerminal)r   r   r
   r	   Ziclock_model_bioData)r	   verbose_name_pluralZall_objects)namefieldsoptionsZmanagersZBioPhotoZ
first_name r   ZbioPhoto_field_firstName)r   r   r   r
   r	   	last_name   ZbioPhoto_field_lastNameZemail   ZbioPhoto_field_emailZ	enroll_snZbioPhoto_field_enrollSNZregister_photoZbioPhoto_field_registerPhoto)r   r   r   r   r	   Zregister_timeZbioPhoto_field_registerTime)r   r   r	   Zapproval_photoZbioPhoto_field_approvalPhotoZapproval_state)r   Zapprove_pending)r   Zapprove_approval_passed)r   Zapprove_rejected)   Zapprove_auto_approvedZbioPhoto_field_approvalState)r   r   r   r   r	   Zapproval_timeZbioPhoto_field_approvalTimeZremarkZbioPhoto_field_remarkZiclock_model_bioPhoto)deleteview)r	   r   Zdefault_permissionsZDeviceConfiguuid$   )r   r   r   r   Zenable_registrationZ%deviceConfig_field_enableRegistration)r   r	   Zenable_resigned_filterZ'deviceConfig_field_enableResignedFilterZenable_auto_addZdeviceConfig_field_autoAddZenable_employee_uploadZ'deviceConfig_field_enableEmployeeUploadZenable_name_uploadZ#deviceConfig_field_enableNameUploadZenable_card_uploadZ#deviceConfig_field_enableCardUploadZtransaction_retentioni'  Z'deviceConfig_field_transactionRetentionZcommand_retentionZ   Z#deviceConfig_field_commandRetentionZdev_log_retentionZ"deviceConfig_field_devLogRetentionZupload_log_retentionZ%deviceConfig_field_uploadLogRetentionZedit_policyZ%deviceConfig_field_editBioPhotoPolicyZimport_policyZ'deviceConfig_field_importBioPhotoPolicyZmobile_policyZ'deviceConfig_field_mobileBioPhotoPolicyZdevice_policyr#   Z'deviceConfig_field_deviceBioPhotoPolicyZiclock_model_deviceConfig)r   r   r   ZErrorCommandLogZ
error_code   ZerrorCommandLog_field_errorCodeZ	error_msgZerrorCommandLog_field_errorMsgZdata_originZ errorCommandLog_field_dataOrigin)r   r
   r	   cmdZerrorCommandLog_field_cmdZ
additionalZ errorCommandLog_field_additionalZupload_timeZ errorCommandLog_field_uploadTimeZterminal_model_errorCommandLogZPrivateMessageuid)r   r   r
   Z
start_timeZprivateMessage_field_startTimeZduration<   ZminutesZprivateMessage_field_duration)r   	help_text
validatorsr	   Zcontenti@  ZprivateMessage_field_contentZ	last_sendZprivateMessage_field_lastSendZiclock_model_privateMessage)r$   Zchanger%   ZPublicMessageZpublicMessage_field_startTimeZpublicMessage_field_duration)r   r-   r	   ZpublicMessage_field_contentZpublicMessage_field_lastSendZiclock_model_publicMessageZTerminalZterminal_field_sn)r   uniquer	   aliasZterminal_field_aliasZ
ip_addressZterminal_field_ipAddressZreal_ipZterminal_field_realIPAddressstateZterminal_field_stateZterminal_tz)izEtc/GMT-12:30)iz
Etc/GMT-12)iNzEtc/GMT-11:30)iz
Etc/GMT-11)izEtc/GMT-10:30)iz
Etc/GMT-10)izEtc/GMT-9:30)iz	Etc/GMT-9)izEtc/GMT-8:30)iz	Etc/GMT-8)i>zEtc/GMT-7:30)iz	Etc/GMT-7)izzEtc/GMT-6:30)iz	Etc/GMT-6)izEtc/GMT-5:30)z	Etc/GMT-5)izEtc/GMT-4:30)z	Etc/GMT-4)i.zEtc/GMT-3:30)z	Etc/GMT-3)ijzEtc/GMT-2:30)z	Etc/GMT-2)izEtc/GMT-1:30)z	Etc/GMT-1)izEtc/GMT-0:30)r   zEtc/GMT)r   zEtc/GMT+0:30)r   z	Etc/GMT+1)r(   zEtc/GMT+1:30)r   z	Etc/GMT+2)r   zEtc/GMT+2:30)r#   z	Etc/GMT+3)   zEtc/GMT+3:30)   z	Etc/GMT+4)i  zEtc/GMT+4:30)r   z	Etc/GMT+5)iJ  zEtc/GMT+5:30)   z	Etc/GMT+6)i  zEtc/GMT+6:30)   z	Etc/GMT+7)i  zEtc/GMT+7:30)r   z	Etc/GMT+8)i  zEtc/GMT+8:30)	   z	Etc/GMT+9)i:  zEtc/GMT+9:30)
   z
Etc/GMT+10)iv  zEtc/GMT+10:30)   z
Etc/GMT+11)i  zEtc/GMT+11:30)   z
Etc/GMT+12)i  zEtc/GMT+12:30)   z
Etc/GMT+13)i*  zEtc/GMT+13:30iJ  Zterminal_field_timezoneZ	heartbeatr<   Zterminal_field_heartbeatHelpTxtZterminal_field_heartbeatZtransfer_mode)r   ZtransferMode_option_realTime)r   ZtransferMode_option_timingZterminal_field_transferModeZtransfer_intervalZ&terminal_field_transferIntervalHelpTxtZterminal_field_transferIntervalZtransfer_timez00:00;14:05Zterminal_field_transferTime)r   r   r	   product_type)r;   ZdeviceModel_option_attendance)r   Z#deviceModel_option_accessController)r   Z$deviceModel_option_informationScreen)   ZdeviceModel_option_AICamerar;   Zterminal_field_productType)r   r   r   r   r
   r	   Zis_attendance)r   Zboolean_option_no)r   Zboolean_option_yesZterminal_field_isAttendanceZis_registrationZterminal_field_isRegistrationZpurposeZterminal_field_purposeZcontroller_type)r   Z1_door_controller)r   Z2_door_controller)r8   Z4_door_controllerZ#terminal_field_accessControllerTypeZauthenticationZterminal_field_authentication)r   r   r   r	   Zstyle   Zterminal_field_styleZupload_flagZ
1111100000Zterminal_field_uploadFlag)r   r   r   r   r
   r	   Zfw_verZterminal_field_firmwareVersionZpush_protocolZ"terminal_field_pushProtocolVersion)r   r   r	   Zpush_verZterminal_field_pushVersionZlanguageT   Zterminal_field_language)r   r   r   r
   r	   Zis_tftZterminal_field_isTftZterminal_nameZterminal_field_terminalNameplatformZterminal_field_platformZ
oem_vendorZterminal_field_oemVendorZ	log_stampZterminal_field_logStampZop_log_stampZ terminal_field_operationLogStampZcapture_stampZterminal_field_captureStampZ
user_countZterminal_field_userCountZuser_capacityZterminal_field_userCapacityZphoto_func_onZterminal_field_photoFuncOnZtransaction_countZterminal_field_transactionCountZtransaction_capacityZ"terminal_field_transactionCapacityZ
fp_func_onZterminal_field_fpFuncOnZfp_countZterminal_field_fingerprintCountZfp_capacityZ"terminal_field_fingerprintCapacityZ
fp_alg_verZ*terminal_field_fingerprintAlgorithmVersionZface_func_onZterminal_field_faceFuncOnZ
face_countZterminal_field_faceCountZface_capacityZterminal_field_faceCapacityZface_alg_verZ#terminal_field_faceAlgorithmVersionZ
fv_func_onZterminal_field_fingerVeinFuncOnZfv_countZterminal_field_fingerVeinCountZfv_capacityZ!terminal_field_fingerVeinCapacityZ
fv_alg_verZ)terminal_field_fingerVeinAlgorithmVersionZpalm_func_onZterminal_field_palmFuncOnZ
palm_countZterminal_field_palmCountZpalm_capacityZterminal_field_palmCapacityZpalm_alg_verZ#terminal_field_palmAlgorithmVersionZ	lock_funcZterminal_field_lockFuncZlast_activityZterminal_field_lastActivityZterminal_field_uploadTimeZ	push_timeZterminal_field_syncTimeZ	is_accessZ"terminal_field_enableAccessControlZgps_locationZdevice_field_gpsLocationZiclock_model_terminalZTerminalCommandZcommand_field_contentZcommit_timeZcommand_field_commit_timeZcommand_field_transferTimeZreturn_timeZcommand_field_returnTimeZreturn_value)r   Z&terminalCommand_returnValue_successful)r6   Z.terminalCommand_returnValue_parameterIncorrect)r5   Z2terminalCommand_returnValue_userPhotoTransferError)r4   Z,terminalCommand_returnValue_readOrWriteError)iZ4terminalCommand_returnValue_bioTemplateTransferError)iZ(terminalCommand_returnValue_userNotExist)iZ3terminalCommand_returnValue_illegalFPTemplateFormat)iZ-terminalCommand_returnValue_illegalFPTemplate)iZ.terminalCommand_returnValue_capacityLimitation)iZ,terminalCommand_returnValue_deviceNotSupport)iZ#terminalCommand_returnValue_timeout)iZ)terminalCommand_returnValue_dataException)iZ&terminalCommand_returnValue_deviceBusy)iZ'terminalCommand_returnValue_dataTooLong)iZ'terminalCommand_returnValue_memoryError)iZ3terminalCommand_returnValue_gettingServerDataFailedZcommand_field_returnValue)r   r   r
   r	   Ziclock_model_terminalCommandZTerminalEmployeeZterminal_snZterminalEmployee_field_snZemp_codeZ#terminalEmployee_field_employeeCodeZ	privilegeZ terminalEmployee_field_privilegeZiclock_model_terminalEmployeeZTerminalLocationZgps_timeZterminal_field_gpstimeZlatitudeZterminal_field_latitudeZ	longitudeZterminal_field_longitudeZiclock_model_terminalLocationZTerminalLogZterminalLog_field_timezoneZadminZterminalLog_field_administratorZaction_name)r   ZdeviceLog_action_powerOn)r   ZdeviceLog_action_powerOff)r   ZdeviceLog_action_verifyFailed)r#   ZdeviceLog_action_alarm)r8   ZdeviceLog_action_enterMenu)r   ZdeviceLog_action_modifySetting)r9   ZdeviceLog_action_enrollFP)r:   ZdeviceLog_action_enrollPassword)r   ZdeviceLog_action_enrollCard)r;   ZdeviceLog_action_deleteUser)r<   ZdeviceLog_action_deleteFP)r=   ZdeviceLog_action_deletePassword)r>   ZdeviceLog_action_deleteCard)r?   ZdeviceLog_action_cleanData)   ZdeviceLog_action_generateMFCard)   deviceLog_action_enrollMFCard)r)   rG   )   ZdeviceLog_action_deleteMFCard)   ZdeviceLog_action_clearMFCard)   Z+deviceLog_action_migrateDataEnrollment2Card)rB   Z'deviceLog_action_migrateDataCard2Device)   ZdeviceLog_action_setupTime)   ZdeviceLog_action_restoreSetting)   Z"deviceLog_action_deleteAccessEntry)   Z$deviceLog_action_clearAdminPrivilege)r!   Z$deviceLog_action_updateAccessSetting)   Z(deviceLog_action_updateUserAccessSetting)   Z%deviceLog_action_updateAccessTimeZone)   Z+deviceLog_action_updateUnlockingCombination)   ZdeviceLog_action_unlock)r   ZdeviceLog_action_enrollNewUser)rA   ZdeviceLog_action_updateFP)    ZdeviceLog_action_duressAlarm)"   ZdeviceLog_action_antiPassBack)#   ZdeviceLog_action_deleteAttPhoto)r'   Z deviceLog_action_updateOtherUser)%   ZdeviceLog_action_holiday)5   Z53)6   Z54)7   Z55)8   Z56)D   Z"deviceLog_action_registerUserPhoto)E   Z deviceLog_action_updateUserPhoto)F   ZdeviceLog_action_updateUserName)G   Z$deviceLog_action_updateUserPrivilege)r   ZdeviceLog_action_updatePalm)e   ZdeviceLog_action_deletePalmZterminalLog_field_actionNameZaction_timeZterminalLog_field_actionTimeobjectZterminalLog_field_objectZparam1ZterminalLog_field_param1Zparam2ZterminalLog_field_param2Zparam3ZterminalLog_field_param3ZterminalLog_field_uploadTimeZiclock_model_terminalLogZTerminalParameterZ
param_typeZterminalParameter_field_typeZ
param_nameZterminalParameter_field_nameZparam_valueZterminalParameter_field_valueZiclock_model_terminalParameterZTerminalUploadLogZeventP   ZterminalUploadLog_field_eventZterminalUploadLog_field_contentZupload_countZterminalUploadLog_field_count)r   r   r	   Zerror_countZ"terminalUploadLog_field_errorCountZ"terminalUploadLog_field_uploadTimeZiclock_model_terminalUploadLogZTerminalWorkCodecoder   ZterminalWorkCode_field_coderN   ZterminalWorkCode_field_aliasZ#terminalWorkCode_field_lastActivityZiclock_model_terminalWorkCodeZTransactionZtransaction_field_employeeCodeZ
punch_timeZtransaction_field_punchTimeZpunch_state)Itransaction_punchState_checkIn)Otransaction_punchState_checkOut)0rd   )1rf   )2Ztransaction_punchState_breakOut)3Ztransaction_punchState_breakIn)4Z!transaction_punchState_overtimeIn)5Z"transaction_punchState_overtimeOutrg   r   Ztransaction_field_punchState)r   r   r   r	   Zverify_type)r   terminal_verifyOption_password)r   Z!terminal_verifyOption_fingerprint)r   Zterminal_verifyOption_badge)r#   rm   )r8   Zterminal_verifyOption_card)r   Z+terminal_verifyOption_fingerprintOrPassword)r9   Z'terminal_verifyOption_fingerprintOrCard)r:   Z$terminal_verifyOption_passwordOrCard)r   Z)terminal_verifyOption_badgeAndFingerprint)r;   Z,terminal_verifyOption_fingerprintAndPassword)r<   Z(terminal_verifyOption_fingerprintAndCard)r=   Z%terminal_verifyOption_passwordAndCard)r>   Z3terminal_verifyOption_fingerprintAndPasswordAndCard)r?   Z4terminal_verifyOption_badgeAndFingerprintAndPassword)rE   Z=terminal_verifyOption_fingerprintAndCardOrFingerprintAndBadge)rF   Zterminal_verifyOption_face)r)   Z(terminal_verifyOption_faceAndFingerprint)rH   Z%terminal_verifyOption_faceAndPassword)rI   Z!terminal_verifyOption_faceAndCard)rJ   Z/terminal_verifyOption_faceAndFingerprintAndCard)rB   Z3terminal_verifyOption_faceAndFingerprintAndPassword)rK   Z terminal_verifyOption_fingerVein)rL   Z+terminal_verifyOption_fingerVeinAndPassword)rM   Z'terminal_verifyOption_fingerVeinAndCard)rN   Z2terminal_verifyOption_fingerVeinAndPasswordAndCard)r!   Zterminal_verifyOption_palm)rO   Z!terminal_verifyOption_palmAndCard)rP   Z!terminal_verifyOption_palmAndFace)rQ   Z(terminal_verifyOption_palmAndFingerprint)rR   Z/terminal_verifyOption_palmAndFingerprintAndFace)r_   Zterminal_verifyOption_gps)f   Zterminal_verifyOption_aiCamera)   Zterminal_verifyOption_otherZtransaction_field_verifyTypeZ	work_codeZtransaction_field_workCodeZtransaction_field_terminalSNZterminal_aliasZtransaction_terminal_aliasZ
area_aliasx   Ztransaction_field_areaAliasZtransaction_field_longitudeZtransaction_field_latitudeZtransaction_field_gpsLocation)r   r   r
   r	   mobileZtransaction_field_mobilesource)r   ZdataSources_option_terminal)r   ZdataSources_option_manualLog)r#   ZdataSources_option_mobile)r8   z
pen driverZtransaction_field_source)r   r   r   r
   r	   Ztransaction_field_purposecrcZtransaction_field_crcCodeZtransaction_field_isAttendancereservedZtransaction_field_reservedZtransaction_field_uploadTimeZsync_statusZ$transaction_field_synchronizedStatusZ	sync_timeZ#transaction_field_synchronized_timeZiclock_model_transaction)r%   ZTransactionProofCmdZend_timeZterminal_countZserver_countflagZcompare_flagZreserved_initZreserved_floatZreserved_charZterminalziclock.TerminalZproof_terminal)Z	on_deletetor	   Ztransaction_proof_commandN)!__name__
__module____qualname__initialZdependenciesr   ZCreateModelr   Z	AutoFieldZDateTimeFieldZ	CharFieldZSmallIntegerFieldZ	TextFieldZIntegerFielddjangoZdbZmanagerZManagerZ
EmailFielddatetimeZnowr&   Zuuid4ZBooleanFieldcorer.   ZMinValueValidatorZGenericIPAddressFieldZ
FloatFieldZ
ForeignKeyZdeletionZCASCADEZ
operations r~   r~   >G:\easytimepro\master/mysite/iclock\migrations\0001_initial.pyr      sP  
 |0* \>,$r   )Z
__future__r   r|   Zdjango.core.validatorsr{   Z	django.dbr   r   Zdjango.db.models.deletionZdjango.db.models.managerr&   r   r~   r~   r~   r   <module>   s   