human
Complete this python program:
def aes_decrypt_text(data, password, key_size_bytes):
assistant
#Here is the Python program you requested.

    """Decrypt text
    - The first 8 Bytes of decoded \data\ are the 8 high Bytes of the counter
    - The cipher key is retrieved by encrypting the first 16 Byte of \password\
    with the first \key_size_bytes\ Bytes from \password\ (if necessary filled with 0\s)
    - Mode of operation is \counter\
    @param {str} data                    Base64 encoded string
    @param {str,unicode} password        Password (will be encoded with utf-8)
    @param {int} key_size_bytes          Possible values: 16 for 128-Bit, 24 for 192-Bit or 32 for 256-Bit
    @returns {str}                       Decrypted data
    """
    NONCE_LENGTH_BYTES = 8
    data = bytes_to_intlist(base64.b64decode(data.encode(u'utf-8')))
    password = bytes_to_intlist(password.encode(u'utf-8'))
    key = (password[:key_size_bytes] + ([0] * (key_size_bytes - len(password))))
    key = (aes_encrypt(key[:BLOCK_SIZE_BYTES], key_expansion(key)) * (key_size_bytes // BLOCK_SIZE_BYTES))
    nonce = data[:NONCE_LENGTH_BYTES]
    cipher = data[NONCE_LENGTH_BYTES:]
    class Counter(object, ):
        __value = (nonce + ([0] * (BLOCK_SIZE_BYTES - NONCE_LENGTH_BYTES)))
        def next_value(self):
            temp = self.__value
            self.__value = inc(self.__value)
            return temp
    decrypted_data = aes_ctr_decrypt(cipher, key, Counter())
    plaintext = intlist_to_bytes(decrypted_data)
    return plaintext