úÎ!3@0(0      !"#$%&'()*+,-./a simple password manager(C) 2018, 2019 Jonathan LamotheLGPLv3 (or later)jlamothe1980@gmail.comNone.•passman&the "salt" used to generate a passwordpassmandefines a password policypassmanpassword lengthpassman+the minimum number of upper case characterspassman+the minimum number of lower case characterspassmanthe minimum number of digitspassmanCthe minimum number of non-alphanumeric characters (not allowed if Nothing)passman&data necessary to construct a password passmanthe password policy passman)random data used to generate the password passman+a mapping of service names to password datapassman!default (empty) password databasepassman builds a new passmandefault password policypassmanbuilds a new saltpassmanvalidates a password databasepassmanvalidates password datapassmanvalidates a password policypassmangenerates a password passman*counts upper case characters in a password!passman*counts lower case characters in a password"passmancounts digits in a password#passman'counts special characters in a password$passman0counts characters matching a specific constraint%passman-checks to see if a service is in the database&passman=adds a service to the database, or overwrites an existing one'passman+attempts to get a service from the database(passman#removes a service from the database)passmansearches for a servicepassmanthe random generator to usepassman#the result and new random generatorpassmanthe random generator to usepassman#the result and new random generatorpassmanthe database to be validatedpassmanTrue if valid; False otherwisepassmanthe data to be validatedpassmanTrue if valid; False otherwisepassmanthe policy being validatedpassman,indicates whether or not the policy is validpassmanthe master passwordpassmanthe password parameterspassman%the resulting password, if possible; Nothing if the data is invalid passman the passwordpassman the count!passman the passwordpassman the count"passman the passwordpassman the count#passman the passwordpassman the count$passmanthe constraintpassmanthe string being checkedpassman the count%passmanthe service namepassmanthe database to checkpassmanreturns True if found; False otherwise&passmanthe service namepassman!the password data for the servicepassmanthe database to add topassmanthe resulting database'passmanthe service namepassmanthe database to checkpassman the service's password data, or Nothing if the service is not found(passmanthe service being removedpassman.the database the service is being removed frompassmanthe resulting database)passmanthe search stringpassmanthe database to searchpassmanthe matching service names&  !"#$%&'()&   !"#$%&'()Safe0012345678       !"#$%&'()*+,-./0123456789"passman-0.2-2oOBEhZvxwD2ZebaUubDd8Password Paths_passmanPWSaltPWPolicy _pwLength_pwUpper_pwLower _pwDigits _pwSpecialPWData _pwPolicy_pwSalt PWDatabase $fEqPWPolicy$fShowPWPolicy $fEqPWData $fShowPWDatapwDigitspwLengthpwLower pwSpecialpwUpperpwPolicypwSalt newPWDatabase newPWData newPWPolicy newPWSaltvalidatePWDatabasevalidatePWDatavalidatePWPolicy pwGenerate pwCountUpper pwCountLower pwCountDigitspwCountSpecialpwCount pwHasService pwSetService pwGetServicepwRemoveServicepwSearch$fToJSONByteString$fToJSONPWPolicy$fToJSONPWData$fFromJSONByteString$fFromJSONPWPolicy$fFromJSONPWDataversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName