<?xml version="1.0"?>
<source xmlns="http://xml.phpdox.net/token">
<file xmlns="http://xml.phpdox.net/src" path="/home/rhossis/NetBeansProjects/cymapgt/core/application/authentication/UserCredential/src/abstractclass" file="UserCredentialAbstract.php" realpath="/home/rhossis/NetBeansProjects/cymapgt/core/application/authentication/UserCredential/src/abstractclass/UserCredentialAbstract.php" size="35781" time="2015-07-18T03:41:36+03:00" unixtime="1437180096" sha1="100187d05e8a9f28bd997a7edafbca00a6acf58e" relative="abstractclass/UserCredentialAbstract.php"/>
<line no="1">
<token name="T_OPEN_TAG"><?php</token>
</line>
<line no="2">
<token name="T_NAMESPACE">namespace</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">cymapgt</token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">core</token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">application</token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">authentication</token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">UserCredential</token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">abstractclass</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="3"/>
<line no="4">
<token name="T_USE">use</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">cymapgt</token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">Exception</token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="5">
<token name="T_USE">use</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">Phpass</token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">Strength</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="6"/>
<line no="7">
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="8">
<token name="T_DOC_COMMENT"> * This package implements user password policy and credential management</token>
</line>
<line no="9">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="10">
<token name="T_DOC_COMMENT"> * @category security</token>
</line>
<line no="11">
<token name="T_DOC_COMMENT"> * @package cymapgt.core.application.authentication.UserCredential</token>
</line>
<line no="12">
<token name="T_DOC_COMMENT"> * @copyright Copyright (c) 2015 Cymap</token>
</line>
<line no="13">
<token name="T_DOC_COMMENT"> * @author Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="14">
<token name="T_DOC_COMMENT"> * @abstract</token>
</line>
<line no="15">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="16">
<token name="T_DOC_COMMENT"> * - See http://www.owasp.org/images/0/08/OWASP_SCP_Quick_Reference_Guide_v2.pdf </token>
</line>
<line no="17">
<token name="T_DOC_COMMENT"> * (authentication section)</token>
</line>
<line no="18">
<token name="T_DOC_COMMENT"> */</token>
</line>
<line no="19"/>
<line no="20">
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CLASS">class</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialAbstract</token>
</line>
<line no="21">
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="22">
<token name="T_WHITESPACE"> </token>
<token name="T_PRIVATE">private</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$_userProfile</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ARRAY">array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//Array containing user information to use in the class</token>
</line>
<line no="23">
<token name="T_WHITESPACE"> </token>
</line>
<line no="24">
<token name="T_WHITESPACE"> </token>
<token name="T_PRIVATE">private</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$_baseEntropySetting</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ARRAY">array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//This is the default entropy setting</token>
</line>
<line no="25">
<token name="T_WHITESPACE"> </token>
<token name="T_PRIVATE">private</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$_baseEntropyOverride</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">false</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//A flag to turn off base entropy enforcement </token>
</line>
<line no="26">
<token name="T_WHITESPACE"> </token>
<token name="T_PRIVATE">private</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$_udfEntropySetting</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ARRAY">array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//A variable to store the user defined entropy</token>
</line>
<line no="27"/>
<line no="28">
<token name="T_WHITESPACE"> </token>
<token name="T_PRIVATE">private</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$_basePasswordPolicy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ARRAY">array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//Base password policy maintained by UserCredential class</token>
</line>
<line no="29">
<token name="T_WHITESPACE"> </token>
<token name="T_PRIVATE">private</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$_udfPasswordPolicy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ARRAY">array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//Udf password policy input by the user</token>
</line>
<line no="30">
<token name="T_WHITESPACE"> </token>
</line>
<line no="31">
<token name="T_WHITESPACE"> </token>
</line>
<line no="32">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">/*</token>
</line>
<line no="33">
<token name="T_COMMENT"> * Constructor method</token>
</line>
<line no="34">
<token name="T_COMMENT"> * Cyril Ogana <cogana@gmail.com> - 2015-07-18</token>
</line>
<line no="35">
<token name="T_COMMENT"> * </token>
</line>
<line no="36">
<token name="T_COMMENT"> * @param array userProfile - array of user credential information</token>
</line>
<line no="37">
<token name="T_COMMENT"> */</token>
</line>
<line no="38">
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">__construct</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="39">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_initialize</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="40">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="41">
<token name="T_WHITESPACE"> </token>
</line>
<line no="42">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="43">
<token name="T_DOC_COMMENT"> * Initialize the classes default settings (base entropy)</token>
</line>
<line no="44">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com> - 2015-07-18</token>
</line>
<line no="45">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="46">
<token name="T_DOC_COMMENT"> * @param array /ArrayAccess userProfile</token>
</line>
<line no="47">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="48">
<token name="T_DOC_COMMENT"> * @access private</token>
</line>
<line no="49">
<token name="T_DOC_COMMENT"> */</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="50">
<token name="T_WHITESPACE"> </token>
<token name="T_PRIVATE">private</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_initialize</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="51">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_initializeProfile</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="52">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_initializeBaseEntropy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="53">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_initializeBasePasswordPolicy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="54">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="55">
<token name="T_WHITESPACE"> </token>
</line>
<line no="56">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/** </token>
</line>
<line no="57">
<token name="T_DOC_COMMENT"> * initializes the user profiles data as per the user credentials provided to the constructor method</token>
</line>
<line no="58">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="59">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com> - 2015-07-18</token>
</line>
<line no="60">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="61">
<token name="T_DOC_COMMENT"> * @param array / ArrayAccess $userProfile</token>
</line>
<line no="62">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="63">
<token name="T_DOC_COMMENT"> * @access private</token>
</line>
<line no="64">
<token name="T_DOC_COMMENT"> */</token>
</line>
<line no="65">
<token name="T_WHITESPACE"> </token>
<token name="T_PRIVATE">private</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_initializeProfile</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="66">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that user profile has the correct information</token>
</line>
<line no="67">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="68">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'username'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="69">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="70">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'fullname'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="71">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'passhash'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="72">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_string</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'passhash'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="73">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'passhist'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="74">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'passhist'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="75">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'account_state'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="76">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'policyinfo'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="77">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'policyinfo'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="78">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="79">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The user profile is not properly initialized'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1000</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="80">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="81">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$userProfile</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="82">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="83"/>
<line no="84">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="85">
<token name="T_DOC_COMMENT"> * Initialize entopy requirements to recommended default base entropy as per OWASP</token>
</line>
<line no="86">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="87">
<token name="T_DOC_COMMENT"> * 2015-07-18</token>
</line>
<line no="88">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="89">
<token name="T_DOC_COMMENT"> * @access private</token>
</line>
<line no="90">
<token name="T_DOC_COMMENT"> */</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="91">
<token name="T_WHITESPACE"> </token>
<token name="T_PRIVATE">private</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_initializeBaseEntropy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="92">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//initialize if not already initialized as array</token>
</line>
<line no="93">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropySetting</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="94">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropySetting</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ARRAY">array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="95">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="96"/>
<line no="97">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropySetting</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_pass_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">8</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//minimum password length</token>
</line>
<line no="98">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropySetting</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'max_consecutive_chars'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">2</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//minimum characters to repeat consecutively</token>
</line>
<line no="99">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropySetting</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'uppercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ARRAY">array</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//requirement and length for various character types</token>
</line>
<line no="100">
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_WHITESPACE"> </token>
<token name="T_DOUBLE_ARROW">=></token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_COMMA">,</token>
</line>
<line no="101">
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_WHITESPACE"> </token>
<token name="T_DOUBLE_ARROW">=></token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">2</token>
</line>
<line no="102">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="103">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropySetting</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'numeric'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ARRAY">array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
</line>
<line no="104">
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_WHITESPACE"> </token>
<token name="T_DOUBLE_ARROW">=></token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_COMMA">,</token>
</line>
<line no="105">
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_WHITESPACE"> </token>
<token name="T_DOUBLE_ARROW">=></token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="106">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="107">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropySetting</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'lowercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ARRAY">array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
</line>
<line no="108">
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_WHITESPACE"> </token>
<token name="T_DOUBLE_ARROW">=></token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_COMMA">,</token>
</line>
<line no="109">
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_WHITESPACE"> </token>
<token name="T_DOUBLE_ARROW">=></token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">2</token>
</line>
<line no="110">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="111">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropySetting</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'special'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ARRAY">array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
</line>
<line no="112">
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_WHITESPACE"> </token>
<token name="T_DOUBLE_ARROW">=></token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_COMMA">,</token>
</line>
<line no="113">
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_WHITESPACE"> </token>
<token name="T_DOUBLE_ARROW">=></token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1</token>
</line>
<line no="114">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="115">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropyOverride</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">false</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//override the reommended settings?</token>
</line>
<line no="116">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_setUdfEntropy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropySetting</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="117">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="118">
<token name="T_WHITESPACE"> </token>
</line>
<line no="119">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="120">
<token name="T_DOC_COMMENT"> * Initialize policy requirements to recommended default base entropy as per OWASP</token>
</line>
<line no="121">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="122">
<token name="T_DOC_COMMENT"> * 2014-02-11</token>
</line>
<line no="123">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="124">
<token name="T_DOC_COMMENT"> * @access private</token>
</line>
<line no="125">
<token name="T_DOC_COMMENT"> */</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="126">
<token name="T_WHITESPACE"> </token>
<token name="T_PRIVATE">private</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_initializeBasePasswordPolicy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="127">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_basePasswordPolicy</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_limit'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">3</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//count</token>
</line>
<line no="128">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_basePasswordPolicy</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_reset_frequency'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">45</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//days</token>
</line>
<line no="129">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_basePasswordPolicy</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_repeat_minimum'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">5</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//count</token>
</line>
<line no="130">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_basePasswordPolicy</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_penalty_seconds'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">600</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//seconds</token>
</line>
<line no="131">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_setUdfPasswordPolicy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_basePasswordPolicy</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="132">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="133">
<token name="T_WHITESPACE"> </token>
</line>
<line no="134">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="135">
<token name="T_DOC_COMMENT"> * Get the base entropy data structure</token>
</line>
<line no="136">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="137">
<token name="T_DOC_COMMENT"> * 2015-07-18</token>
</line>
<line no="138">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="139">
<token name="T_DOC_COMMENT"> * @return array / Object</token>
</line>
<line no="140">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="141">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="142">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="143">
<token name="T_DOC_COMMENT"> */</token>
</line>
<line no="144">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_getBaseEntropy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="145">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropySetting</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="146">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropySetting</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="147">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="148">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="149">
<token name="T_WHITESPACE"> </token>
</line>
<line no="150">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="151">
<token name="T_DOC_COMMENT"> * Get the base password policy</token>
</line>
<line no="152">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="153">
<token name="T_DOC_COMMENT"> * 2015-07-18</token>
</line>
<line no="154">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="155">
<token name="T_DOC_COMMENT"> * @return array / Object</token>
</line>
<line no="156">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="157">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="158">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="159">
<token name="T_DOC_COMMENT"> */</token>
</line>
<line no="160">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_getBasePasswordPolicy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="161">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_basePasswordPolicy</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="162">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_basePasswordPolicy</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="163">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="164">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="165"/>
<line no="166">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="167">
<token name="T_DOC_COMMENT"> * Set the user defined entropy setting</token>
</line>
<line no="168">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="169">
<token name="T_DOC_COMMENT"> * 2015-07-18</token>
</line>
<line no="170">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="171">
<token name="T_DOC_COMMENT"> * @param array / object entropyObj - array or object implementing ArrayAccess</token>
</line>
<line no="172">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="173">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="174">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="175">
<token name="T_DOC_COMMENT"> */</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="176">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_setUdfEntropy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="177">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//initialize if not already initialized as array</token>
</line>
<line no="178">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="179">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
</line>
<line no="180">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_object</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="181">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_AND">&&</token>
</line>
<line no="182">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_WHITESPACE"> </token>
<token name="T_INSTANCEOF">instanceof</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">ArrayAccess</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="183">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="184">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ARRAY">array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="185">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="186"/>
<line no="187">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate the array / object</token>
</line>
<line no="188">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="189">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_object</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="190">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_INSTANCEOF">instanceof</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">ArrayAccess</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="191">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="192">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The entropy object should be an array or implement ArrayAccess interface'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1001</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="193">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="194">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="195"/>
<line no="196">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that minimum password len has the correct indices, then set it</token>
</line>
<line no="197">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_pass_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="198">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_int</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_pass_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="199">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="200">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The minimum password length hasn\'t been set'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1002</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="201">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="202">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_pass_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_pass_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="203"/>
<line no="204">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that minimum allowed password characters to repeat has been set</token>
</line>
<line no="205">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'max_consecutive_chars'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="206">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_int</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'max_consecutive_chars'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="207">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="208">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The minimum allowed consecutive character repetition hasn\'t been set'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1003</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="209">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="210">
<token name="T_WHITESPACE"> </token>
</line>
<line no="211">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'max_consecutive_chars'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'max_consecutive_chars'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="212">
<token name="T_WHITESPACE"> </token>
</line>
<line no="213">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that uppercase snippet has correct indices, then set it</token>
</line>
<line no="214">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'uppercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="215">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'uppercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="216">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'uppercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="217">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_bool</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'uppercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="218">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'uppercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="219">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_int</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'uppercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="220">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="221">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The uppercase settings must be an array containing toggle and min upper length'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1004</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="222">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="223">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'uppercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'uppercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="224"/>
<line no="225">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that lowercase snippet has correct indices, then set it</token>
</line>
<line no="226">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'lowercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="227">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'lowercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="228">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'lowercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="229">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_bool</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'lowercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="230">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'lowercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="231">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_int</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'lowercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="232">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="233">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The lowercase settings must be an array containing toggle and min lower length'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1005</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="234">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="235">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'lowercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'lowercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="236"/>
<line no="237">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that numeric chars snippet has correct indices, then set it</token>
</line>
<line no="238">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'numeric'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="239">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'numeric'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="240">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'numeric'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="241">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_bool</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'numeric'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="242">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'numeric'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="243">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_int</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'numeric'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="244">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="245">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The numeric settings must be an array containing toggle and min lower length'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1006</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="246">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="247">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'numeric'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'numeric'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="248"/>
<line no="249">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that special chars snippet has correct indices, then set it</token>
</line>
<line no="250">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'special'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="251">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'special'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="252">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'special'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="253">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_bool</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'special'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="254">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'special'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="255">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_int</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'special'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="256">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="257">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'the uppercase settings must be an array containing toggle and min upper length'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1007</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="258">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="259">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'special'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'special'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="260">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="261">
<token name="T_WHITESPACE"> </token>
</line>
<line no="262">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="263">
<token name="T_DOC_COMMENT"> * Set the user defined password policy</token>
</line>
<line no="264">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="265">
<token name="T_DOC_COMMENT"> * 2015-07-18</token>
</line>
<line no="266">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="267">
<token name="T_DOC_COMMENT"> * @param array / object entropyObj - array or object implementing ArrayAccess</token>
</line>
<line no="268">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="269">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="270">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="271">
<token name="T_DOC_COMMENT"> */</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="272">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_setUdfPasswordPolicy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="273">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//initialize if not already initialized as array</token>
</line>
<line no="274">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfPasswordPolicy</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="275">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="276">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_object</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfPasswordPolicy</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="277">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_AND">&&</token>
</line>
<line no="278">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfPasswordPolicy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_INSTANCEOF">instanceof</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">ArrayAccess</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="279">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="280">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfPasswordPolicy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ARRAY">array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="281">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="282"/>
<line no="283">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate the array / object</token>
</line>
<line no="284">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="285">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_object</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="286">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_INSTANCEOF">instanceof</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">ArrayAccess</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="287">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="288">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The entropy object should be an array or implement ArrayAccess interface'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1008</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="289">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="290">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="291"/>
<line no="292">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that illegal attempts limit has correct indices, then set it</token>
</line>
<line no="293">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_limit'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="294">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_int</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_limit'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="295">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="296">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The illegal attempts limit hasn\'t been set'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1009</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="297">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="298">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfPasswordPolicy</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_limit'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_limit'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="299"/>
<line no="300">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that password reset frequency has correct indices, then set it</token>
</line>
<line no="301">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_reset_frequency'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="302">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_int</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_reset_frequency'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="303">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="304">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The password reset frequency hasn\'t been set'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1010</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="305">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="306">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfPasswordPolicy</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_reset_frequency'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_reset_frequency'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="307"/>
<line no="308">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that passwordd repeat minimum has correct indices, then set it</token>
</line>
<line no="309">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_repeat_minimum'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="310">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_int</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_repeat_minimum'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="311">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="312">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The password repeat minimum has not been set'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1011</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="313">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="314">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfPasswordPolicy</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_repeat_minimum'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_repeat_minimum'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="315"/>
<line no="316">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that password repeat minimum has correct indices, then set it</token>
</line>
<line no="317">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_penalty_seconds'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="318">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_STRING">is_int</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_penalty_seconds'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="319">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="320">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The illegal attempts penalty seconds has not been set'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1012</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="321">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="322">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfPasswordPolicy</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_penalty_seconds'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_penalty_seconds'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="323">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="324">
<token name="T_WHITESPACE"> </token>
</line>
<line no="325">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="326">
<token name="T_DOC_COMMENT"> * Get the udf entropy data structure</token>
</line>
<line no="327">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="328">
<token name="T_DOC_COMMENT"> * 2015-07-18</token>
</line>
<line no="329">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="330">
<token name="T_DOC_COMMENT"> * @return array / Object</token>
</line>
<line no="331">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="332">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="333">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="334">
<token name="T_DOC_COMMENT"> */</token>
</line>
<line no="335">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_getUdfEntropy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="336">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="337">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="338">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="339">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="340">
<token name="T_WHITESPACE"> </token>
</line>
<line no="341">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="342">
<token name="T_DOC_COMMENT"> * Get the udf password policy</token>
</line>
<line no="343">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="344">
<token name="T_DOC_COMMENT"> * 2015-07-18</token>
</line>
<line no="345">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="346">
<token name="T_DOC_COMMENT"> * @return array / Object</token>
</line>
<line no="347">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="348">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="349">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="350">
<token name="T_DOC_COMMENT"> */</token>
</line>
<line no="351">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_getUdfPasswordPolicy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="352">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfPasswordPolicy</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="353">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfPasswordPolicy</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="354">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="355">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="356">
<token name="T_WHITESPACE"> </token>
</line>
<line no="357">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="358">
<token name="T_DOC_COMMENT"> * Set the value of base entropy toggle flag</token>
</line>
<line no="359">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="360">
<token name="T_DOC_COMMENT"> * 2015-07-18</token>
</line>
<line no="361">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="362">
<token name="T_DOC_COMMENT"> * @param True or false to toggle the attribute</token>
</line>
<line no="363">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="364">
<token name="T_DOC_COMMENT"> * @return void</token>
</line>
<line no="365">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="366">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="367">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="368">
<token name="T_DOC_COMMENT"> */</token>
</line>
<line no="369">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_setBaseEntropyOverride</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$toggle</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="370">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropyOverride</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="371">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_AND">&&</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">is_bool</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$toggle</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="372">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="373">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropyOverride</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$toggle</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="374">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="375">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="376"/>
<line no="377">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="378">
<token name="T_DOC_COMMENT"> * Get the current value of base entropy override attrib</token>
</line>
<line no="379">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="380">
<token name="T_DOC_COMMENT"> * 2013-07-18</token>
</line>
<line no="381">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="382">
<token name="T_DOC_COMMENT"> * @return bool</token>
</line>
<line no="383">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="384">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="385">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="386">
<token name="T_DOC_COMMENT"> */</token>
</line>
<line no="387">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_getBaseEntropyOverride</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="388">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropyOverride</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="389">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_baseEntropyOverride</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="390">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="391">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="392">
<token name="T_WHITESPACE"> </token>
</line>
<line no="393">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="394">
<token name="T_DOC_COMMENT"> * build simple regex patterns based on particular entropy settings</token>
</line>
<line no="395">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="396">
<token name="T_DOC_COMMENT"> * 2015-07-18</token>
</line>
<line no="397">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="398">
<token name="T_DOC_COMMENT"> * @param int patternCode - integer representing defined constants for variable code</token>
</line>
<line no="399">
<token name="T_DOC_COMMENT"> * @param int matchCount - integer representing the count of matched transactions</token>
</line>
<line no="400">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="401">
<token name="T_DOC_COMMENT"> * @return string</token>
</line>
<line no="402">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="403">
<token name="T_DOC_COMMENT"> * @access private</token>
</line>
<line no="404">
<token name="T_DOC_COMMENT"> */</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="405">
<token name="T_WHITESPACE"> </token>
<token name="T_PRIVATE">private</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_regexBuildPattern</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$patternCode</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$matchCount</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="406">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$patternRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">''</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="407"/>
<line no="408">
<token name="T_WHITESPACE"> </token>
<token name="T_SWITCH">switch</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$patternCode</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="409">
<token name="T_WHITESPACE"> </token>
<token name="T_CASE">case</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1</token>
<token name="T_PHPDOX_COLON">:</token>
</line>
<line no="410">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$patternRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_ENCAPSED_AND_WHITESPACE">(?=(?:.*[A-Z]){</token>
<token name="T_CURLY_OPEN">{</token>
<token name="T_VARIABLE">$matchCount</token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_ENCAPSED_AND_WHITESPACE">})</token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="411">
<token name="T_WHITESPACE"> </token>
<token name="T_BREAK">break</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="412">
<token name="T_WHITESPACE"> </token>
<token name="T_CASE">case</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">2</token>
<token name="T_PHPDOX_COLON">:</token>
</line>
<line no="413">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$patternRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_ENCAPSED_AND_WHITESPACE">(?=(?:.*[a-z]){</token>
<token name="T_CURLY_OPEN">{</token>
<token name="T_VARIABLE">$matchCount</token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_ENCAPSED_AND_WHITESPACE">})</token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="414">
<token name="T_WHITESPACE"> </token>
<token name="T_BREAK">break</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="415">
<token name="T_WHITESPACE"> </token>
<token name="T_CASE">case</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">3</token>
<token name="T_PHPDOX_COLON">:</token>
</line>
<line no="416">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$patternRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_ENCAPSED_AND_WHITESPACE">(?=(?:.*[0-9]){</token>
<token name="T_CURLY_OPEN">{</token>
<token name="T_VARIABLE">$matchCount</token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_ENCAPSED_AND_WHITESPACE">})</token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="417">
<token name="T_WHITESPACE"> </token>
<token name="T_BREAK">break</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="418">
<token name="T_WHITESPACE"> </token>
<token name="T_CASE">case</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">4</token>
<token name="T_PHPDOX_COLON">:</token>
</line>
<line no="419">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$patternRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'(?=(?:.*([-@%+\/\'!#$^*?:.)(}{\[\]~_])){'</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_VARIABLE">$matchCount</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'})'</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="420">
<token name="T_WHITESPACE"> </token>
<token name="T_BREAK">break</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="421">
<token name="T_WHITESPACE"> </token>
<token name="T_CASE">case</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">5</token>
<token name="T_PHPDOX_COLON">:</token>
</line>
<line no="422">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$patternRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'((.)\2}?(\2{'</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_VARIABLE">$matchCount</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'}))'</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="423">
<token name="T_WHITESPACE"> </token>
<token name="T_DEFAULT">default</token>
<token name="T_PHPDOX_COLON">:</token>
</line>
<line no="424">
<token name="T_WHITESPACE"> </token>
<token name="T_BREAK">break</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="425">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="426">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$patternRegex</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="427">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The regex pattern is not set'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1013</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="428">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="429"/>
<line no="430">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$patternRegex</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="431">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="432">
<token name="T_WHITESPACE"> </token>
</line>
<line no="433">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="434">
<token name="T_DOC_COMMENT"> * Get a description of the required password entropy</token>
</line>
<line no="435">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="436">
<token name="T_DOC_COMMENT"> * 2015-07-18</token>
</line>
<line no="437">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="438">
<token name="T_DOC_COMMENT"> * @return string</token>
</line>
<line no="439">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="440">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="441">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="442">
<token name="T_DOC_COMMENT"> */</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="443">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_getPasswordEntropyDescription</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="444">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_getUdfEntropy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="445">
<token name="T_WHITESPACE"> </token>
</line>
<line no="446">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$description</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The password entropy requires at minimum, the following: '</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="447">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$hasEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">false</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="448">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$isFirstEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">false</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="449">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$concatenator</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">''</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="450">
<token name="T_WHITESPACE"> </token>
</line>
<line no="451">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'lowercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="452">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$lowercaseLen</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'lowercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="453">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$description</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONCAT_EQUAL">.=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_ENCAPSED_AND_WHITESPACE"> at least </token>
<token name="T_VARIABLE">$lowercaseLen</token>
<token name="T_ENCAPSED_AND_WHITESPACE"> lowercase characters</token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="454">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$hasEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="455">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$isFirstEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="456">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="457">
<token name="T_WHITESPACE"> </token>
</line>
<line no="458">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'uppercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="459">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$isFirstEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$isFirstEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_QUESTION_MARK">?</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">false</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_COLON">:</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="460">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$concatenator</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$isFirstEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_QUESTION_MARK">?</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">''</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_COLON">:</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">','</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="461">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$uppercaseLen</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'uppercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="462">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$description</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONCAT_EQUAL">.=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_VARIABLE">$concatenator</token>
<token name="T_ENCAPSED_AND_WHITESPACE"> at least </token>
<token name="T_VARIABLE">$uppercaseLen</token>
<token name="T_ENCAPSED_AND_WHITESPACE"> uppercase characters</token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="463">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$hasEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="464">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="465">
<token name="T_WHITESPACE"> </token>
</line>
<line no="466">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'numeric'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="467">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$isFirstEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$isFirstEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_QUESTION_MARK">?</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">false</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_COLON">:</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="468">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$concatenator</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$isFirstEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_QUESTION_MARK">?</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">''</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_COLON">:</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">','</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="469">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$numericLen</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'numeric'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="470">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$description</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONCAT_EQUAL">.=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_VARIABLE">$concatenator</token>
<token name="T_ENCAPSED_AND_WHITESPACE"> at least </token>
<token name="T_VARIABLE">$numericLen</token>
<token name="T_ENCAPSED_AND_WHITESPACE"> numeric characters</token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="471">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$hasEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="472">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="473"/>
<line no="474">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'special'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="475">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$isFirstEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$isFirstEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_QUESTION_MARK">?</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">false</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_COLON">:</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="476">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$concatenator</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$isFirstEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_QUESTION_MARK">?</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">''</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_COLON">:</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">','</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="477">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$specialLen</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'special'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="478">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$description</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONCAT_EQUAL">.=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_VARIABLE">$concatenator</token>
<token name="T_ENCAPSED_AND_WHITESPACE"> at least </token>
<token name="T_VARIABLE">$specialLen</token>
<token name="T_ENCAPSED_AND_WHITESPACE"> special characters</token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="479">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$hasEntropy</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="480">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="481">
<token name="T_WHITESPACE"> </token>
</line>
<line no="482">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_VARIABLE">$hasEntropy</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="483">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$description</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'There is no minimum password entropy policy in place'</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="484">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="485">
<token name="T_WHITESPACE"> </token>
</line>
<line no="486">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$description</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="487">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="488"/>
<line no="489">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="490">
<token name="T_DOC_COMMENT"> * Get a description of the required password entropy</token>
</line>
<line no="491">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="492">
<token name="T_DOC_COMMENT"> * 2015-07-18</token>
</line>
<line no="493">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="494">
<token name="T_DOC_COMMENT"> * @return string</token>
</line>
<line no="495">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="496">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="497">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="498">
<token name="T_DOC_COMMENT"> */</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="499">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_getPasswordLengthDescription</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="500">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_getUdfEntropy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="501">
<token name="T_WHITESPACE"> </token>
</line>
<line no="502">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_pass_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="503">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_ENCAPSED_AND_WHITESPACE">The minimum password length is </token>
<token name="T_CURLY_OPEN">{</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_pass_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_ENCAPSED_AND_WHITESPACE"> characters</token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="504">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ELSE">else</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="505">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'There is no minimum password length policy in place'</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="506">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="507">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="508">
<token name="T_WHITESPACE"> </token>
</line>
<line no="509">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="510">
<token name="T_DOC_COMMENT"> * Get a description for the entropy policy regarding repeating a character consecutively</token>
</line>
<line no="511">
<token name="T_DOC_COMMENT"> * Cyril Ogana<cogana@gmail.com></token>
</line>
<line no="512">
<token name="T_DOC_COMMENT"> * 2015-07-18</token>
</line>
<line no="513">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="514">
<token name="T_DOC_COMMENT"> * @return string</token>
</line>
<line no="515">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="516">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="517">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="518">
<token name="T_DOC_COMMENT"> */</token>
</line>
<line no="519">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_getPasswordCharacterRepeatDescription</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="520">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_getUdfEntropy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="521">
<token name="T_WHITESPACE"> </token>
</line>
<line no="522">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'max_consecutive_chars'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="523">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_ENCAPSED_AND_WHITESPACE">The maximum allowed number of repeated characters in password of same type (e.g. aaa) is </token>
<token name="T_CURLY_OPEN">{</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'max_consecutive_chars'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_PHPDOX_DOUBLE_QUOTES">"</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="524">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ELSE">else</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="525">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">"There is no maximum allowed number of repeated characters in password of the same type (e.g. aaa)"</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="526">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="527">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="528"/>
<line no="529">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="530">
<token name="T_DOC_COMMENT"> * Get a description of the required password policy</token>
</line>
<line no="531">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="532">
<token name="T_DOC_COMMENT"> * 2015-07-18</token>
</line>
<line no="533">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="534">
<token name="T_DOC_COMMENT"> * @return string</token>
</line>
<line no="535">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="536">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="537">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="538">
<token name="T_DOC_COMMENT"> */</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="539">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_getPasswordPolicyDescription</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$policyType</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="540">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_getUdfPasswordPolicy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="541"/>
<line no="542">
<token name="T_WHITESPACE"> </token>
<token name="T_SWITCH">switch</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$policyType</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="543">
<token name="T_WHITESPACE"> </token>
<token name="T_CASE">case</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_limit'</token>
<token name="T_PHPDOX_COLON">:</token>
</line>
<line no="544">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_limit'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="545">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The illegal login attempts limit is '</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_limit'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="546">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="547">
<token name="T_WHITESPACE"> </token>
<token name="T_BREAK">break</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="548">
<token name="T_WHITESPACE"> </token>
<token name="T_CASE">case</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_reset_frequency'</token>
<token name="T_PHPDOX_COLON">:</token>
</line>
<line no="549">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_reset_frequency'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="550">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The password reset frequency is '</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_reset_frequency'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_CONSTANT_ENCAPSED_STRING">' days'</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="551">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="552">
<token name="T_WHITESPACE"> </token>
<token name="T_BREAK">break</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="553">
<token name="T_WHITESPACE"> </token>
<token name="T_CASE">case</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_repeat_minimum'</token>
<token name="T_PHPDOX_COLON">:</token>
</line>
<line no="554">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_repeat_minimum'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="555">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'A user is not allowed to repeat any of their last '</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_repeat_minimum'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_CONSTANT_ENCAPSED_STRING">' passwords'</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="556">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="557">
<token name="T_WHITESPACE"> </token>
<token name="T_BREAK">break</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="558">
<token name="T_WHITESPACE"> </token>
<token name="T_CASE">case</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_penalty_seconds'</token>
<token name="T_PHPDOX_COLON">:</token>
</line>
<line no="559">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_penalty_seconds'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="560">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'A user account will be temporarily locked out after the illegal login attempts limit for '</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_penalty_seconds'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_CONSTANT_ENCAPSED_STRING">' seconds; and will require admin intervention if the offense is repeated'</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="561">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="562">
<token name="T_WHITESPACE"> </token>
<token name="T_BREAK">break</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="563">
<token name="T_WHITESPACE"> </token>
<token name="T_DEFAULT">default</token>
<token name="T_PHPDOX_COLON">:</token>
</line>
<line no="564">
<token name="T_WHITESPACE"> </token>
</line>
<line no="565">
<token name="T_WHITESPACE"> </token>
<token name="T_BREAK">break</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="566">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="567">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="568">
<token name="T_WHITESPACE"> </token>
</line>
<line no="569">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="570">
<token name="T_DOC_COMMENT"> * validate the entropy of the password in the userprofile</token>
</line>
<line no="571">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="572">
<token name="T_DOC_COMMENT"> * 2018-07-18</token>
</line>
<line no="573">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="574">
<token name="T_DOC_COMMENT"> * @return bool</token>
</line>
<line no="575">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="576">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="577">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="578">
<token name="T_DOC_COMMENT"> */</token>
</line>
<line no="579">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_validateEntropy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="580">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that required indices exist</token>
</line>
<line no="581">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'username'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="582">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="583">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'fullname'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="584">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'passhist'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="585">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="586">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">Exception</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The username and password are not set'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1014</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="587">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="588"/>
<line no="589">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that user is not using part of username as password</token>
</line>
<line no="590">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$namePartsArr</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ARRAY">array</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="591">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$namePartsArr</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">strtolower</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'username'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="592">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$namePartsArr</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">strtolower</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'fullname'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="593">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$namePartsArr</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">strtolower</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_STRING">str_replace</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">' '</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">''</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'fullname'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="594">
<token name="T_WHITESPACE"> </token>
</line>
<line no="595">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$fullNameExploded</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">explode</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">' '</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'fullname'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="596">
<token name="T_WHITESPACE"> </token>
</line>
<line no="597">
<token name="T_WHITESPACE"> </token>
<token name="T_FOREACH">foreach</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$fullNameExploded</token>
<token name="T_WHITESPACE"> </token>
<token name="T_AS">as</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$nameItem</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="598">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$namePartsArr</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">strtolower</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$nameItem</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="599">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="600">
<token name="T_WHITESPACE"> </token>
</line>
<line no="601">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//iterate and search for occurrences of name parts</token>
</line>
<line no="602">
<token name="T_WHITESPACE"> </token>
<token name="T_FOREACH">foreach</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$namePartsArr</token>
<token name="T_WHITESPACE"> </token>
<token name="T_AS">as</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$namePart</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="603">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$namePartCast</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING_CAST">(string)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$namePart</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="604">
<token name="T_WHITESPACE"> </token>
</line>
<line no="605">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_STRING">strpos</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_STRING">strtolower</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$namePartCast</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_NOT_IDENTICAL">!==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">false</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="606">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'Password cannot contain username or any of your names'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">USERCREDENTIAL_ACCOUNTPOLICY_NAMEINPASSWD</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="607">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="608">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="609">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//set which entropy to use (base or udf)</token>
</line>
<line no="610">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="611"/>
<line no="612">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$validateCaseRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">''</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="613">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$upperCaseRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">''</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="614"/>
<line no="615">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//build the password entropy regex uppercase</token>
</line>
<line no="616">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'uppercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="617">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//@TODO: Implement as constants the patterns</token>
</line>
<line no="618">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$pattern</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="619">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$matchCount</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'uppercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_QUESTION_MARK">?</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'uppercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_COLON">:</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="620">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$upperCaseRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_regexBuildPattern</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$pattern</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$matchCount</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="621">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="622"/>
<line no="623">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$lowerCaseRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">''</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="624"/>
<line no="625">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//build the password entropy regex lowercase</token>
</line>
<line no="626">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'lowercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="627">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$pattern</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">2</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="628">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$matchCount</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'lowercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_QUESTION_MARK">?</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'lowercase'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_COLON">:</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="629">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$lowerCaseRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_regexBuildPattern</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$pattern</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_VARIABLE">$matchCount</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="630">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="631"/>
<line no="632">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$numericRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">''</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="633"/>
<line no="634">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//build the password entropy regex numbers</token>
</line>
<line no="635">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'numeric'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="636">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$pattern</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">3</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="637">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$matchCount</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'numeric'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_QUESTION_MARK">?</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'numeric'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_COLON">:</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="638">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$numericRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_regexBuildPattern</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$pattern</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$matchCount</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="639">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="640"/>
<line no="641">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$specialRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">''</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="642"/>
<line no="643">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//build the password entropy regex special</token>
</line>
<line no="644">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'special'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'toggle'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="645">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$pattern</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">4</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="646">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$matchCount</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'special'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_QUESTION_MARK">?</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'special'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_COLON">:</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="647">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$specialRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_regexBuildPattern</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$pattern</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$matchCount</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="648">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="649"/>
<line no="650">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//regex entropy string</token>
</line>
<line no="651"/>
<line no="652">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$validateCaseRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'/^'</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_VARIABLE">$upperCaseRegex</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_VARIABLE">$lowerCaseRegex</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_VARIABLE">$numericRegex</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_VARIABLE">$specialRegex</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'/'</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="653">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$testVal</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">preg_match</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$validateCaseRegex</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="654"/>
<line no="655">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$testVal</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_IDENTICAL">===</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">false</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="656">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'A fatal error occured in the password validation'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1015</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="657">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ELSEIF">elseif</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$testVal</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">false</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="658">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The password does not meet the minimum entropy. '</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_getPasswordEntropyDescription</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">USERCREDENTIAL_ACCOUNTPOLICY_WEAKPASSWD</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="659">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ELSE">else</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="660">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="661">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="662">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="663">
<token name="T_WHITESPACE"> </token>
</line>
<line no="664">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="665">
<token name="T_DOC_COMMENT"> * validate the password length of the users credentials</token>
</line>
<line no="666">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="667">
<token name="T_DOC_COMMENT"> * 2018-07-18</token>
</line>
<line no="668">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="669">
<token name="T_DOC_COMMENT"> * @return bool</token>
</line>
<line no="670">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="671">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="672">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="673">
<token name="T_DOC_COMMENT"> */</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="674">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_validateLength</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="675">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that required indices exist</token>
</line>
<line no="676">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'username'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="677">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="678">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'fullname'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="679">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'passhist'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="680">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="681">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">Exception</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The username and password are not set'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1016</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="682">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="683"/>
<line no="684">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//determine which entropy to use (base or udf)</token>
</line>
<line no="685">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="686">
<token name="T_WHITESPACE"> </token>
</line>
<line no="687">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//perform length check</token>
</line>
<line no="688">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_STRING">strlen</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_LT"><</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'min_pass_len'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="689">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The password does not meet required length. '</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_getPasswordLengthDescription</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">USERCREDENTIAL_ACCOUNTPOLICY_WEAKPASSWD</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="690">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="691">
<token name="T_WHITESPACE"> </token>
</line>
<line no="692">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="693">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="694">
<token name="T_WHITESPACE"> </token>
</line>
<line no="695">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="696">
<token name="T_DOC_COMMENT"> * validate that there are no instances of consecutive character repetitions beyond allowed number</token>
</line>
<line no="697">
<token name="T_DOC_COMMENT"> * in the users password string</token>
</line>
<line no="698">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="699">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="700">
<token name="T_DOC_COMMENT"> * 2018-07-18</token>
</line>
<line no="701">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="702">
<token name="T_DOC_COMMENT"> * @return bool</token>
</line>
<line no="703">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="704">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="705">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="706">
<token name="T_DOC_COMMENT"> */</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="707">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_validateConsecutiveCharacterRepeat</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="708">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that required indices exist</token>
</line>
<line no="709">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'username'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="710">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="711">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'fullname'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="712">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'passhist'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="713">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="714">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">Exception</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The username and password are not set'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1017</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="715">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="716"/>
<line no="717">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//determine which entropy to use (base or udf)</token>
</line>
<line no="718">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfEntropySetting</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="719">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$maxConsecutiveChars</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_INT_CAST">(int)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'max_consecutive_chars'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="720">
<token name="T_WHITESPACE"> </token>
</line>
<line no="721">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//because we offset by -2 when doing regex, if the limit is not greater or equal to 2, default to 2</token>
</line>
<line no="722">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$maxConsecutiveChars</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_GREATER_OR_EQUAL">>=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">2</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="723">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$maxConsecutiveChars</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">2</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="724">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="725">
<token name="T_WHITESPACE"> </token>
</line>
<line no="726">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//offset for purposes of matching (TODO: fix?)</token>
</line>
<line no="727">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$maxConsecutiveCharsRegexOffset</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_INC">++</token>
<token name="T_VARIABLE">$maxConsecutiveChars</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_MINUS">-</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">2</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="728">
<token name="T_WHITESPACE"> </token>
</line>
<line no="729">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//build regex</token>
</line>
<line no="730">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$maxConsecutiveCharsRegex</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'/'</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_regexBuildPattern</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_LNUMBER">5</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$maxConsecutiveCharsRegexOffset</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">'/'</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="731">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//die(print_r($maxConsecutiveCharsRegex));</token>
</line>
<line no="732">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$testVal</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">preg_match</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$maxConsecutiveCharsRegex</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="733"/>
<line no="734">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$testVal</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_IDENTICAL">===</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">false</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="735">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'A fatal error occured in the password validation'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1018</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="736">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ELSEIF">elseif</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$testVal</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="737">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The password violates policy about consecutive character repetitions. '</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_getPasswordCharacterRepeatDescription</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">USERCREDENTIAL_ACCOUNTPOLICY_WEAKPASSWD</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="738">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ELSE">else</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="739">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="740">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="741">
<token name="T_WHITESPACE"> </token>
</line>
<line no="742">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="743">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="744">
<token name="T_WHITESPACE"> </token>
</line>
<line no="745">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="746">
<token name="T_DOC_COMMENT"> * validate the password policy during authentication</token>
</line>
<line no="747">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="748">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="749">
<token name="T_DOC_COMMENT"> * 2018-07-18</token>
</line>
<line no="750">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="751">
<token name="T_DOC_COMMENT"> * @return bool</token>
</line>
<line no="752">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="753">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="754">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="755">
<token name="T_DOC_COMMENT"> */</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="756">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_validatePolicy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="757">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that required indices exist</token>
</line>
<line no="758">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'username'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="759">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="760">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'fullname'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="761">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'passhist'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="762">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="763">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">Exception</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The username and password are not set'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1019</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="764">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="765"/>
<line no="766">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//determine which entropy to use (base or udf)</token>
</line>
<line no="767">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfPasswordPolicy</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="768">
<token name="T_WHITESPACE"> </token>
</line>
<line no="769">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//check attempt limits</token>
</line>
<line no="770">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'account_state'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">USERCREDENTIAL_ACCOUNTSTATE_AUTHFAILED</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="771">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'policyinfo'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'failed_attempt_count'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_GT">></token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_limit'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="772">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The account has exceeded login attempts and is locked. Contact admin'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">USERCREDENTIAL_ACCOUNTPOLICY_ATTEMPTLIMIT2</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="773">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ELSEIF">elseif</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'policyinfo'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'failed_attempt_count'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_limit'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="774">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The account has failed login '</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_INC">++</token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_limit'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_CONSTANT_ENCAPSED_STRING">' times in a row and is temporarily locked. Any further wrong passwords will lead to your account being locked fully. You will be automatically unlocked in '</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'illegal_attempts_penalty_seconds'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_DIV">/</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">60</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_CONSTANT_ENCAPSED_STRING">' minutes or contact admin to unlock immediately'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">USERCREDENTIAL_ACCOUNTPOLICY_ATTEMPTLIMIT1</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="775">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ELSE">else</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="776">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'Login failed. Wrong username or password'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">USERCREDENTIAL_ACCOUNTPOLICY_VALID</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="777">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="778">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="779">
<token name="T_WHITESPACE"> </token>
</line>
<line no="780">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//check needs reset</token>
</line>
<line no="781">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$currDateTimeObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">DateTime</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="782">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$passChangeDaysElapsedObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$currDateTimeObj</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">diff</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'policyinfo'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_last_changed_datetime'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="783">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$passChangeDaysElapsed</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$passChangeDaysElapsedObj</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">format</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'%a'</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="784">
<token name="T_WHITESPACE"> </token>
</line>
<line no="785">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$passChangeDaysElapsed</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_GT">></token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_reset_frequency'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="786">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The password has expired and must be changed'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">USERCREDENTIAL_ACCOUNTPOLICY_EXPIRED</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="787">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="788">
<token name="T_WHITESPACE"> </token>
</line>
<line no="789">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="790">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="791">
<token name="T_WHITESPACE"> </token>
</line>
<line no="792">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="793">
<token name="T_DOC_COMMENT"> * validate the password policy during process of making a password change</token>
</line>
<line no="794">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="795">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="796">
<token name="T_DOC_COMMENT"> * 2018-07-18</token>
</line>
<line no="797">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="798">
<token name="T_DOC_COMMENT"> * @return bool</token>
</line>
<line no="799">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="800">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="801">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="802">
<token name="T_DOC_COMMENT"> */</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="803">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_validatePolicyAtChange</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="804">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that required indices exist</token>
</line>
<line no="805">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'username'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="806">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="807">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'fullname'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="808">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'passhist'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="809">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="810">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">Exception</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The username and password are not set'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1020</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="811">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="812"/>
<line no="813">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//determine which entropy to use (base or udf)</token>
</line>
<line no="814">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_udfPasswordPolicy</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="815">
<token name="T_WHITESPACE"> </token>
</line>
<line no="816">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//check password repeat</token>
</line>
<line no="817">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$passHistory</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'passhist'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="818">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$passHistoryRequired</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">array_slice</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$passHistory</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">0</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_INT_CAST">(int)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_repeat_minimum'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="819">
<token name="T_WHITESPACE"> </token>
</line>
<line no="820">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//iterate and verify</token>
</line>
<line no="821">
<token name="T_WHITESPACE"> </token>
<token name="T_FOREACH">foreach</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$passHistoryRequired</token>
<token name="T_WHITESPACE"> </token>
<token name="T_AS">as</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$passHistoryItem</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="822">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_STRING">password_verify</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$passHistoryItem</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="823">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">UserCredentialException</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'User cannot repeat any of their '</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$policyObj</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_repeat_minimum'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_DOT">.</token>
<token name="T_WHITESPACE"> </token>
<token name="T_CONSTANT_ENCAPSED_STRING">' last passwords'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">USERCREDENTIAL_ACCOUNTPOLICY_REPEATERROR</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="824">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="825">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="826">
<token name="T_WHITESPACE"> </token>
</line>
<line no="827">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="828">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="829">
<token name="T_WHITESPACE"> </token>
</line>
<line no="830">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="831">
<token name="T_DOC_COMMENT"> * Check that a user can change password in case you want to implement limits on changing passwords</token>
</line>
<line no="832">
<token name="T_DOC_COMMENT"> * only once in 24 hours</token>
</line>
<line no="833">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="834">
<token name="T_DOC_COMMENT"> * Cyril Ogana <cogana@gmail.com></token>
</line>
<line no="835">
<token name="T_DOC_COMMENT"> * 2018-07-18</token>
</line>
<line no="836">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="837">
<token name="T_DOC_COMMENT"> * @return bool</token>
</line>
<line no="838">
<token name="T_DOC_COMMENT"> *</token>
</line>
<line no="839">
<token name="T_DOC_COMMENT"> * @access protected</token>
</line>
<line no="840">
<token name="T_DOC_COMMENT"> * @final</token>
</line>
<line no="841">
<token name="T_DOC_COMMENT"> */</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="842">
<token name="T_WHITESPACE"> </token>
<token name="T_FINAL">final</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PROTECTED">protected</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">_canChangePassword</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="843">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//validate that required indices exist</token>
</line>
<line no="844">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'username'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="845">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="846">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'fullname'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="847">
<token name="T_WHITESPACE"> </token>
<token name="T_BOOLEAN_OR">||</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EXCLAMATION_MARK">!</token>
<token name="T_ISSET">isset</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'passhist'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
</line>
<line no="848">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="849">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">Exception</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'The username and password are not set'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1021</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="850">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="851">
<token name="T_WHITESPACE"> </token>
</line>
<line no="852">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//Verify if the password was changed today or server has been futuredated</token>
</line>
<line no="853">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$currDateTimeObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">DateTime</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="854">
<token name="T_WHITESPACE"> </token>
</line>
<line no="855">
<token name="T_WHITESPACE"> </token>
<token name="T_COMMENT">//Password was changed today or in the future</token>
</line>
<line no="856">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$currDateTimeObj</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_SMALLER_OR_EQUAL"><=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$this</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">_userProfile</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'policyinfo'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_OPEN_SQUARE">[</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'password_last_changed_datetime'</token>
<token name="T_PHPDOX_CLOSE_SQUARE">]</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="857">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">false</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="858">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ELSE">else</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="859">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">true</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="860">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="861">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="862">
<token name="T_WHITESPACE"> </token>
</line>
<line no="863">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="864">
<token name="T_DOC_COMMENT"> * Check password strength using NIST Or Wolfram adapter (default NIST)</token>
</line>
<line no="865">
<token name="T_DOC_COMMENT"> * See https://github.com/rchouinard/phpass</token>
</line>
<line no="866">
<token name="T_DOC_COMMENT"> * Many thanks to Ryan Chouinard for the phpass package</token>
</line>
<line no="867">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="868">
<token name="T_DOC_COMMENT"> * @param string $passwordString - The password string to evaluate</token>
</line>
<line no="869">
<token name="T_DOC_COMMENT"> * @param int $strengthAdapter - Named constant representing adapter to use (default NIST)</token>
</line>
<line no="870">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="871">
<token name="T_DOC_COMMENT"> * @return int</token>
</line>
<line no="872">
<token name="T_DOC_COMMENT"> * </token>
</line>
<line no="873">
<token name="T_DOC_COMMENT"> * @access public</token>
</line>
<line no="874">
<token name="T_DOC_COMMENT"> * @static</token>
</line>
<line no="875">
<token name="T_DOC_COMMENT"> */</token>
</line>
<line no="876">
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STATIC">static</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">passwordStrength</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$passwordString</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$strengthAdapter</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">PHPASS_PASSWORDSTRENGTHADAPTER_NIST</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="877">
<token name="T_WHITESPACE"> </token>
<token name="T_IF">if</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$strengthAdapter</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">PHPASS_PASSWORDSTRENGTHADAPTER_WOLFRAM</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="878">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$strengthAdapter</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">Strength</token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">Adapter</token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">Wolfram</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
<token name="T_WHITESPACE"> </token>
</line>
<line no="879">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ELSEIF">elseif</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$strengthAdapter</token>
<token name="T_WHITESPACE"> </token>
<token name="T_IS_EQUAL">==</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">PHPASS_PASSWORDSTRENGTHADAPTER_NIST</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="880">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$strengthAdapter</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">Strength</token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">Adapter</token>
<token name="T_NS_SEPARATOR">\</token>
<token name="T_STRING">Nist</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="881">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
<token name="T_WHITESPACE"> </token>
<token name="T_ELSE">else</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_OPEN_CURLY">{</token>
</line>
<line no="882">
<token name="T_WHITESPACE"> </token>
<token name="T_THROW">throw</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">Exception</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_CONSTANT_ENCAPSED_STRING">'Phpass strength adapter calculator must be NIST or Wolfram. Wrong Flag provivded.'</token>
<token name="T_PHPDOX_COMMA">,</token>
<token name="T_WHITESPACE"> </token>
<token name="T_LNUMBER">1022</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="883">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="884"/>
<line no="885">
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$phpassStrength</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_EQUAL">=</token>
<token name="T_WHITESPACE"> </token>
<token name="T_NEW">new</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">Strength</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$strengthAdapter</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="886">
<token name="T_WHITESPACE"> </token>
<token name="T_RETURN">return</token>
<token name="T_WHITESPACE"> </token>
<token name="T_VARIABLE">$phpassStrength</token>
<token name="T_OBJECT_OPERATOR">-></token>
<token name="T_STRING">calculate</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$passwordString</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="887">
<token name="T_WHITESPACE"> </token>
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="888">
<token name="T_WHITESPACE"> </token>
</line>
<line no="889">
<token name="T_WHITESPACE"> </token>
<token name="T_DOC_COMMENT">/**</token>
</line>
<line no="890">
<token name="T_DOC_COMMENT"> * Abstract methods for concrete implementation</token>
</line>
<line no="891">
<token name="T_DOC_COMMENT"> */</token>
</line>
<line no="892">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">getBaseEntropy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="893">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">getBaseEntropyOverride</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="894">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">getBasePasswordPolicy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="895">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">getPasswordEntropyDescription</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="896">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">getPasswordLengthDescription</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="897">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">getPasswordPolicyDescription</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="898">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">getUdfEntropy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="899">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">getUdfPasswordPolicy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="900">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">setBaseEntropyOverride</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$toggle</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="901">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">setUdfEntropy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="902">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">setUdfPasswordPolicy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_VARIABLE">$entropyObj</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="903">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">validateEntropy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="904">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">validateLength</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="905">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">validateConsecutiveCharacterRepeat</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="906">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">validatePolicy</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="907">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">validatePolicyAtChange</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="908">
<token name="T_WHITESPACE"> </token>
<token name="T_ABSTRACT">abstract</token>
<token name="T_WHITESPACE"> </token>
<token name="T_PUBLIC">public</token>
<token name="T_WHITESPACE"> </token>
<token name="T_FUNCTION">function</token>
<token name="T_WHITESPACE"> </token>
<token name="T_STRING">canChangePassword</token>
<token name="T_PHPDOX_OPEN_BRACKET">(</token>
<token name="T_PHPDOX_CLOSE_BRACKET">)</token>
<token name="T_PHPDOX_SEMICOLON">;</token>
</line>
<line no="909">
<token name="T_PHPDOX_CLOSE_CURLY">}</token>
</line>
<line no="910"/>
</source>
|