{
    "contractName": "SecuritiesFactory",
    "abi": [
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_salt",
                    "type": "uint256"
                },
                {
                    "name": "_logic",
                    "type": "address"
                },
                {
                    "name": "_admin",
                    "type": "address"
                },
                {
                    "name": "_data",
                    "type": "bytes"
                },
                {
                    "name": "_signature",
                    "type": "bytes"
                }
            ],
            "name": "getSigner",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_salt",
                    "type": "uint256"
                },
                {
                    "name": "_logic",
                    "type": "address"
                },
                {
                    "name": "_admin",
                    "type": "address"
                },
                {
                    "name": "_data",
                    "type": "bytes"
                },
                {
                    "name": "_signature",
                    "type": "bytes"
                }
            ],
            "name": "deploySigned",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_salt",
                    "type": "uint256"
                },
                {
                    "name": "_logic",
                    "type": "address"
                },
                {
                    "name": "_admin",
                    "type": "address"
                },
                {
                    "name": "_data",
                    "type": "bytes"
                }
            ],
            "name": "deploy",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_salt",
                    "type": "uint256"
                },
                {
                    "name": "_sender",
                    "type": "address"
                }
            ],
            "name": "getDeploymentAddress",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "isOwner",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_logic",
                    "type": "address"
                },
                {
                    "name": "_data",
                    "type": "bytes"
                }
            ],
            "name": "deployMinimal",
            "outputs": [
                {
                    "name": "proxy",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "security",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "productCategory",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "issuer",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "isin",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "currency",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "restricted",
                    "type": "bool"
                },
                {
                    "indexed": false,
                    "name": "issueManager",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "restrictions",
                    "type": "bytes32[]"
                },
                {
                    "indexed": false,
                    "name": "country",
                    "type": "bytes32"
                }
            ],
            "name": "securitiesAdded",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "previousOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "proxy",
                    "type": "address"
                }
            ],
            "name": "ProxyCreated",
            "type": "event"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_security",
                    "type": "address"
                },
                {
                    "name": "_client",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "sender",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getIssues",
            "outputs": [
                {
                    "name": "",
                    "type": "address[]"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "security",
                    "type": "address"
                },
                {
                    "name": "productCategory",
                    "type": "bytes32"
                },
                {
                    "name": "company",
                    "type": "bytes32"
                },
                {
                    "name": "isin",
                    "type": "bytes32"
                },
                {
                    "name": "currency",
                    "type": "address"
                },
                {
                    "name": "issuer",
                    "type": "address"
                },
                {
                    "name": "intermediary",
                    "type": "address"
                },
                {
                    "name": "encodedRestrictions",
                    "type": "bytes"
                },
                {
                    "name": "country",
                    "type": "bytes32"
                },
                {
                    "name": "qualified",
                    "type": "bool"
                }
            ],
            "name": "issueSecurity",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_securityToken",
                    "type": "address"
                }
            ],
            "name": "getHolder",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_securityToken",
                    "type": "address"
                }
            ],
            "name": "getSecurity",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_securityToken",
                    "type": "address"
                },
                {
                    "name": "_issuer",
                    "type": "address"
                }
            ],
            "name": "getSecurityToken",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                },
                {
                    "name": "",
                    "type": "bytes32"
                },
                {
                    "name": "",
                    "type": "bytes32"
                },
                {
                    "name": "",
                    "type": "address"
                },
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "security",
                    "type": "address"
                },
                {
                    "name": "transferor",
                    "type": "address"
                },
                {
                    "name": "transferee",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "addBalance",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "issue",
                    "type": "address"
                }
            ],
            "name": "checkProduct",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_securityToken",
                    "type": "address"
                },
                {
                    "name": "_issuer",
                    "type": "address"
                },
                {
                    "name": "_custodian",
                    "type": "address"
                }
            ],
            "name": "setCustodian",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_securityToken",
                    "type": "address"
                },
                {
                    "name": "_issuer",
                    "type": "address"
                }
            ],
            "name": "getCustodian",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_security",
                    "type": "address"
                },
                {
                    "name": "_countries",
                    "type": "bytes32[]"
                }
            ],
            "name": "restrictCountry",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_security",
                    "type": "address"
                }
            ],
            "name": "getRestrictedCountries",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32[]"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_securityToken",
                    "type": "address"
                }
            ],
            "name": "getDP",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        }
    ],
    "metadata": "{\"compiler\":{\"version\":\"0.5.7+commit.6da8b019\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"},{\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"getSigner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"},{\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"deploySigned\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_securityToken\",\"type\":\"address\"},{\"name\":\"_issuer\",\"type\":\"address\"}],\"name\":\"getSecurityToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"issue\",\"type\":\"address\"}],\"name\":\"checkProduct\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getIssues\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_security\",\"type\":\"address\"},{\"name\":\"_client\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_securityToken\",\"type\":\"address\"}],\"name\":\"getSecurity\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"security\",\"type\":\"address\"},{\"name\":\"productCategory\",\"type\":\"bytes32\"},{\"name\":\"company\",\"type\":\"bytes32\"},{\"name\":\"isin\",\"type\":\"bytes32\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"issuer\",\"type\":\"address\"},{\"name\":\"intermediary\",\"type\":\"address\"},{\"name\":\"encodedRestrictions\",\"type\":\"bytes\"},{\"name\":\"country\",\"type\":\"bytes32\"},{\"name\":\"qualified\",\"type\":\"bool\"}],\"name\":\"issueSecurity\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_securityToken\",\"type\":\"address\"},{\"name\":\"_issuer\",\"type\":\"address\"},{\"name\":\"_custodian\",\"type\":\"address\"}],\"name\":\"setCustodian\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"deploy\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_security\",\"type\":\"address\"},{\"name\":\"_countries\",\"type\":\"bytes32[]\"}],\"name\":\"restrictCountry\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"getDeploymentAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"security\",\"type\":\"address\"},{\"name\":\"transferor\",\"type\":\"address\"},{\"name\":\"transferee\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"addBalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"deployMinimal\",\"outputs\":[{\"name\":\"proxy\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_security\",\"type\":\"address\"}],\"name\":\"getRestrictedCountries\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_securityToken\",\"type\":\"address\"},{\"name\":\"_issuer\",\"type\":\"address\"}],\"name\":\"getCustodian\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_securityToken\",\"type\":\"address\"}],\"name\":\"getHolder\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_securityToken\",\"type\":\"address\"}],\"name\":\"getDP\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"security\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"productCategory\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"isin\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"restricted\",\"type\":\"bool\"},{\"indexed\":false,\"name\":\"issueManager\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"restrictions\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"name\":\"country\",\"type\":\"bytes32\"}],\"name\":\"securitiesAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"ProxyCreated\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"initialize(address)\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner.     * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/SecuritiesFactory.sol\":\"SecuritiesFactory\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-ethereum-package/contracts/GSN/Context.sol\":{\"keccak256\":\"0x3491510fa4862af1a43f6c860d9cf7392240196540cd3c0eea79d374d419c5a1\",\"urls\":[\"bzzr://5cddbf3b74b775a8670757a6b8e108dac17dac20253f35f4c729e9cb6bea4ed3\"]},\"@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]},\"@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xd7e8ab76fa35c4d8d35a06a6ed538cadab8b75a1aa00594ced1568b2c0cadde3\",\"urls\":[\"bzzr://b4c855b32d75f2a4969bfbd530b6934b69f12f28584b3746967e1ca64e024bd9\"]},\"@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x2a474399663812668bb8e9c9e7d011d54fd09de386bd6e9fcb2407a677ebd1aa\",\"urls\":[\"bzzr://3d70561b32ba1494d2b2df362e92dff5ab869d27e2fe35cf9bf3a8ae137cffd3\"]},\"@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzzr://cf2d583b8dce38d0617fdcd65f2fd9f126fe17b7f683b5a515ea9d2762d8b062\"]},\"@openzeppelin/upgrades/contracts/Initializable.sol\":{\"keccak256\":\"0x9bfec92e36234ecc99b5d37230acb6cd1f99560233753162204104a4897e8721\",\"urls\":[\"bzzr://f75d88b16fe25a9e19b3512691c496e2bb6d8451bc9a636196c4e17ca9b40201\"]},\"@openzeppelin/upgrades/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0x0ca3de3dc8aac4114ff0b123fcabef91901de1a30938f3e954846ad99909b972\",\"urls\":[\"bzzr://7905b8ce67a4d4b0744f0f08abb7c4ec1762b18ee39ee7d64fc73beb0da0db19\"]},\"@openzeppelin/upgrades/contracts/upgradeability/BaseAdminUpgradeabilityProxy.sol\":{\"keccak256\":\"0xbf8ee1cf63a430a3eb8b39a9145d0d133400b8db06fa9fd33056597f7d8ceb25\",\"urls\":[\"bzzr://f9563fda28096fae1396dce1f6eb5f5afc664677887071076b7e4b0e6d06bd56\"]},\"@openzeppelin/upgrades/contracts/upgradeability/BaseUpgradeabilityProxy.sol\":{\"keccak256\":\"0x1b37f808dc0a45976ad23aa53908c485a74a4d9fbd03066a5ab399c46436e570\",\"urls\":[\"bzzr://c309686ae393a7474d0af3a7237b5ef3c452d9f78756d40caeeaad4caf2c2efb\"]},\"@openzeppelin/upgrades/contracts/upgradeability/InitializableAdminUpgradeabilityProxy.sol\":{\"keccak256\":\"0x91f2b663c89b940dce6dbd00f5e7bf326cdf02d1da4ddbcb7e64b313e60d9afc\",\"urls\":[\"bzzr://572ab82efb4e71dbb88e992eedc363f72290eb2fdc1081023e66680d2a69ef07\"]},\"@openzeppelin/upgrades/contracts/upgradeability/InitializableUpgradeabilityProxy.sol\":{\"keccak256\":\"0x6b84a0236a899ba5aa673ea34d5efa1f93dba461e13d8799f51a9f7b64b59f4f\",\"urls\":[\"bzzr://bc421cdd1f5c8313a0eaf237c9110d187674955d3eacbc187bddeda82a664053\"]},\"@openzeppelin/upgrades/contracts/upgradeability/Proxy.sol\":{\"keccak256\":\"0xd8074ae5fa7ee6384ca8196a896612fb044bbf4ff4b7336d03cd97845000ac21\",\"urls\":[\"bzzr://a94275c7d409e80fa5cf6f31c8a6b97cf85c231de40585d42ae98bab426562c6\"]},\"@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol\":{\"keccak256\":\"0xf4932759c88b26dd0b37a7ba960c44f7a4e817127846befb4b4fb72ee8f2c573\",\"urls\":[\"bzzr://6b7fb7e0bdbbbcbf9cbd110fc19a23bfa4eeb583c767b66614124f34f2135b42\"]},\"@openzeppelin/upgrades/contracts/upgradeability/UpgradeabilityProxy.sol\":{\"keccak256\":\"0xb02c6349ba01df9902857b6058f92b37f13187775cce9da74f6f28410205445b\",\"urls\":[\"bzzr://2a95f00787c16351caad43b25048cc40eff9f140c4b1284fbf502dfd9b708489\"]},\"@openzeppelin/upgrades/contracts/utils/Address.sol\":{\"keccak256\":\"0x7be7f8e4c08bc70ff9815e3f11c569f42aa3c447b5bc61fd75fb5cec97f63a9f\",\"urls\":[\"bzzr://b6a2c355fa7aadb6c25e8691e98abc26d3429afa58eb761af4ab5377eee30709\"]},\"project:/contracts/SecuritiesFactory.sol\":{\"keccak256\":\"0x8c1306a2ab6aafa2bb9c98d6d8c3c9fae05299c66e3e30efdeed74e1245500f4\",\"urls\":[\"bzzr://aa05d5af8a223cca111af7823f9887b0ffd9f66dba18b0598c3763b19f49a885\"]},\"project:/contracts/interfaces/IFactory.sol\":{\"keccak256\":\"0x29cd61f33fc8b6df1df33f8348a3ac1899b4deb666e67488e76d85dbd8d6a75f\",\"urls\":[\"bzzr://0987c5150127114a6c78c19ee94e44d3eceaffb9171a366ea7aacadb9ac1950e\"]},\"project:/contracts/interfaces/ISecurity.sol\":{\"keccak256\":\"0x78465ac58789aedcdf71ae7da7e144a63db0ca386e0b4c2392a29f726e5d35d4\",\"urls\":[\"bzzr://7d0224ef9bc4c783f66e3c9a20a46274c9b70b754643372433ebd00ef1bd80c6\"]},\"project:/contracts/interfaces/VerifiedClient.sol\":{\"keccak256\":\"0x4562b0ed92d6752e2e79e14ec71511dbc019925d1bc549777e8ab9f2abefa4d7\",\"urls\":[\"bzzr://7b6bb4c351bab3f4c983ed339fc371c6f6621b7d52fd8a77cfb7a64b47391d0d\"]}},\"version\":1}",
    "bytecode": "0x6080604081905261001060a0610034565b601f1982820381018352601f90910116604052805160209190910120600055610041565b6109a68061300583390190565b612fb5806100506000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063c07415f41161007c578063c07415f4146108b1578063c4d66de8146108d7578063c8748aa5146108fd578063cd75c7d41461092b578063e0a87de114610951578063f2fde38b146109775761014d565b8063715018a61461077d57806381ae1f5b146107855780638da5cb5b146107b15780638f32d59b146107b9578063a7428f33146107c1578063b3eeb5e2146107fd5761014d565b8063485cc95511610115578063485cc955146104fb5780634a161b271461052b5780635e7e8388146105515780635ee84984146106035780636150864c1461063b5780636601b975146106ff5761014d565b8063290f8f5614610152578063332d6626146102b75780633d07d20b146104005780633ea6c82d146104695780634434f973146104a3575b600080fd5b61029b600480360360a081101561016857600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b8111156101a257600080fd5b8201836020820111156101b457600080fd5b803590602001918460018302840111600160201b831117156101d557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561022757600080fd5b82018360208201111561023957600080fd5b803590602001918460018302840111600160201b8311171561025a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061099d945050505050565b604080516001600160a01b039092168252519081900360200190f35b61029b600480360360a08110156102cd57600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561030757600080fd5b82018360208201111561031957600080fd5b803590602001918460018302840111600160201b8311171561033a57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561038c57600080fd5b82018360208201111561039e57600080fd5b803590602001918460018302840111600160201b831117156103bf57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a8c945050505050565b61042e6004803603604081101561041657600080fd5b506001600160a01b0381358116916020013516610b09565b604080516001600160a01b03968716815260208101959095528481019390935293166060830152911515608082015290519081900360a00190f35b61048f6004803603602081101561047f57600080fd5b50356001600160a01b0316610b54565b604080519115158252519081900360200190f35b6104ab610bad565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104e75781810151838201526020016104cf565b505050509050019250505060405180910390f35b6105296004803603604081101561051157600080fd5b506001600160a01b0381358116916020013516610c10565b005b61029b6004803603602081101561054157600080fd5b50356001600160a01b0316610cef565b610529600480360361014081101561056857600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a082013583169260c0830135169190810190610100810160e0820135600160201b8111156105bd57600080fd5b8201836020820111156105cf57600080fd5b803590602001918460018302840111600160201b831117156105f057600080fd5b9193509150803590602001351515610d0d565b6105296004803603606081101561061957600080fd5b506001600160a01b0381358116916020810135821691604090910135166116f8565b61029b6004803603608081101561065157600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561068b57600080fd5b82018360208201111561069d57600080fd5b803590602001918460018302840111600160201b831117156106be57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118a9945050505050565b6105296004803603604081101561071557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561073f57600080fd5b82018360208201111561075157600080fd5b803590602001918460208302840111600160201b8311171561077257600080fd5b5090925090506118c1565b6105296118ea565b61029b6004803603604081101561079b57600080fd5b50803590602001356001600160a01b0316611990565b61029b6119f7565b61048f611a06565b610529600480360360808110156107d757600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135611a2c565b61029b6004803603604081101561081357600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561083d57600080fd5b82018360208201111561084f57600080fd5b803590602001918460018302840111600160201b8311171561087057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611c81945050505050565b6104ab600480360360208110156108c757600080fd5b50356001600160a01b0316611de2565b610529600480360360208110156108ed57600080fd5b50356001600160a01b0316611e4e565b61029b6004803603604081101561091357600080fd5b506001600160a01b0381358116916020013516611f42565b61029b6004803603602081101561094157600080fd5b50356001600160a01b0316611f6f565b61029b6004803603602081101561096757600080fd5b50356001600160a01b0316611f8d565b6105296004803603602081101561098d57600080fd5b50356001600160a01b0316611fc2565b600080610a75878787873060405160200180868152602001856001600160a01b03166001600160a01b031660601b8152601401846001600160a01b03166001600160a01b031660601b815260140183805190602001908083835b60208310610a165780518252601f1990920191602091820191016109f7565b6001836020036101000a038019825116818451168082178552505050505050905001826001600160a01b03166001600160a01b031660601b8152601401955050505050506040516020818303038152906040528051906020012061202a565b9050610a81818461207b565b979650505050505050565b600080610a9c878787878761099d565b90506001600160a01b038116610afc5760408051600160e51b62461bcd02815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b610a818787878785612169565b6001600160a01b03918216600090815260686020908152604080832093851683529290522060068101546002820154600183015492548285169591941691600160a01b900460ff1690565b6001600160a01b038181166000908152606b6020526040812054909116151580610b9757506001600160a01b038281166000908152606a60205260409020541615155b15610ba457506001610ba8565b5060005b919050565b60606067805480602002602001604051908101604052809291908181526020018280548015610c0557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610be7575b505050505090505b90565b600154610100900460ff1680610c295750610c2961229d565b80610c37575060015460ff16155b610c7557604051600160e51b62461bcd02815260040180806020018281038252602e815260200180612f5c602e913960400191505060405180910390fd5b600154610100900460ff16158015610c9f576001805460ff1961ff00199091166101001716811790555b610ca833611e4e565b606c80546001600160a01b038086166001600160a01b031992831617909255606d8054928516929091169190911790558015610cea576001805461ff00191690555b505050565b6001600160a01b039081166000908152606b60205260409020541690565b6001600160a01b0386163314610d6d5760408051600160e51b62461bcd02815260206004820181905260248201527f556e617574686f72697a656420697373756572206f662073656375726974792e604482015290519081900360640190fd5b606084846020811015610d7f57600080fd5b810190602081018135600160201b811115610d9957600080fd5b820183602082011115610dab57600080fd5b803590602001918460208302840111600160201b83111715610dcc57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929650505050506001600160a01b038e16151591506112c5905057606d5460408051602481018d9052604481018c90523060648201526001600160a01b03808b16608483015292831660a48201528a831660c4808301919091528251808303909101815260e49091019091526020810180516001600160e01b0316600160e21b632274a71302179052606c549091600091610e98911683611c81565b90508a60686000836001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b03168152602001908152602001600020600201819055508b60686000836001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b03168152602001908152602001600020600101819055508960686000836001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b0316815260200190815260200160002060000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060686000836001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b0316815260200190815260200160002060060160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508760686000836001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b0316815260200190815260200160002060050160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508360686000836001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b0316815260200190815260200160002060060160146101000a81548160ff02191690831515021790555088606a6000836001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508d606b6000836001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060678190806001815401808255809150509060018203906000526020600020016000909192909190916101000a8154816001600160a01b0302191690836001600160a01b0316021790555050806001600160a01b03167fac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc8e8b8e8e898e8a8d60405180898152602001886001600160a01b03166001600160a01b03168152602001878152602001866001600160a01b03166001600160a01b0316815260200185151515158152602001846001600160a01b03166001600160a01b0316815260200180602001838152602001828103825284818151815260200191508051906020019060200280838360005b838110156112a457818101518382015260200161128c565b50505050905001995050505050505050505060405180910390a250506116ea565b88606860008e6001600160a01b03166001600160a01b031681526020019081526020016000206000896001600160a01b03166001600160a01b031681526020019081526020016000206002018190555089606860008e6001600160a01b03166001600160a01b031681526020019081526020016000206000896001600160a01b03166001600160a01b031681526020019081526020016000206001018190555087606860008e6001600160a01b03166001600160a01b031681526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002060000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508b606860008e6001600160a01b03166001600160a01b031681526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002060060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555085606860008e6001600160a01b03166001600160a01b031681526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002060050160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081606860008e6001600160a01b03166001600160a01b031681526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002060060160146101000a81548160ff02191690831515021790555086606a60008e6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508b606b60008e6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060678c90806001815401808255809150509060018203906000526020600020016000909192909190916101000a8154816001600160a01b0302191690836001600160a01b03160217905550508b6001600160a01b03167fac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc8c898c8c878c888b60405180898152602001886001600160a01b03166001600160a01b03168152602001878152602001866001600160a01b03166001600160a01b0316815260200185151515158152602001846001600160a01b03166001600160a01b0316815260200180602001838152602001828103825284818151815260200191508051906020019060200280838360005b838110156116cf5781810151838201526020016116b7565b50505050905001995050505050505050505060405180910390a25b505050505050505050505050565b6001600160a01b038381166000908152606860209081526040808320606a835281842054851684529091529020600501541633146117805760408051600160e51b62461bcd02815260206004820152601a60248201527f496e636f727265637420637573746f6469616e20736574207570000000000000604482015290519081900360640190fd5b606d5460408051600160e01b63442767330281526001600160a01b03848116600483015291516000939290921691634427673391602480820192606092909190829003018186803b1580156117d457600080fd5b505afa1580156117e8573d6000803e3d6000fd5b505050506040513d60608110156117fe57600080fd5b50519050600160b91b6821bab9ba37b234b0b70281146118685760408051600160e51b62461bcd02815260206004820152601160248201527f496e76616c696420637573746f6469616e000000000000000000000000000000604482015290519081900360640190fd5b506001600160a01b03928316600090815260686020908152604080832094861683529390529190912060040180546001600160a01b03191691909216179055565b60006118b88585858533612169565b95945050505050565b6001600160a01b03831660009081526069602052604090206118e490838361251d565b50505050565b6118f2611a06565b6119465760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6034546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603480546001600160a01b0319169055565b60008061199d84846122a3565b600054604080516001600160f81b031960208083019190915230606090811b602184015260358301959095526055808301949094528251808303909401845260759091019091528151910120811b901c9150505b92915050565b6034546001600160a01b031690565b6034546000906001600160a01b0316611a1d6122dc565b6001600160a01b031614905090565b6001600160a01b038481166000908152606a6020526040902054163314611a9d5760408051600160e51b62461bcd02815260206004820152601360248201527f556e617574686f72697a65642061636365737300000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03831615611bd6576001600160a01b03808516600090815260686020908152604080832093861683529290522060030154611adf90826122e0565b6001600160a01b03858116600090815260686020908152604080832087851684529091528082206003908101949094559186168152200154611b219082612344565b6001600160a01b03808616600081815260686020908152604080832089861680855281845282852060030197909755938352606a82528083205485168352929052818120600601548251600160e11b637aa9bf6f02815260048101959095528684166024860152604485018690529151919092169263f5537ede92606480830193919282900301818387803b158015611bb957600080fd5b505af1158015611bcd573d6000803e3d6000fd5b505050506118e4565b6001600160a01b038085166000818152606860209081526040808320878616808552818452828520600301889055948452606a83528184205486168452909152808220600601548151600160e31b630f38ca0d02815260048101949094526024840186905290519316926379c6506892604480820193929182900301818387803b158015611c6357600080fd5b505af1158015611c77573d6000803e3d6000fd5b5050505050505050565b6000808360601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0604080516001600160a01b038316815290519194507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349925081900360200190a1825115611ddb576000826001600160a01b0316846040518082805190602001908083835b60208310611d645780518252601f199092019160209182019101611d45565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611dc6576040519150601f19603f3d011682016040523d82523d6000602084013e611dcb565b606091505b5050905080611dd957600080fd5b505b5092915050565b6001600160a01b038116600090815260696020908152604091829020805483518184028101840190945280845260609392830182828015611e4257602002820191906000526020600020905b815481526020019060010190808311611e2e575b50505050509050919050565b600154610100900460ff1680611e675750611e6761229d565b80611e75575060015460ff16155b611eb357604051600160e51b62461bcd02815260040180806020018281038252602e815260200180612f5c602e913960400191505060405180910390fd5b600154610100900460ff16158015611edd576001805460ff1961ff00199091166101001716811790555b603480546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38015611f3e576001805461ff00191690555b5050565b6001600160a01b039182166000908152606860209081526040808320938516835292905220600401541690565b6001600160a01b039081166000908152606a60205260409020541690565b6001600160a01b039081166000908152606860209081526040808320606a835281842054851684529091529020600501541690565b611fca611a06565b61201e5760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61202781612386565b50565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461208e575060006119f1565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156120d457600093505050506119f1565b8060ff16601b141580156120ec57508060ff16601c14155b156120fd57600093505050506119f1565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015612154573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b600080612176878461242a565b604080516001600160a01b038316815290519192507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349919081900360200190a1604051600160e01b63cf7a1d770281526001600160a01b038781166004830190815287821660248401526060604484019081528751606485015287519285169363cf7a1d77938b938b938b939192909160840190602085019080838360005b8381101561222c578181015183820152602001612214565b50505050905090810190601f1680156122595780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561227a57600080fd5b505af115801561228e573d6000803e3d6000fd5b50929998505050505050505050565b303b1590565b604080516020808201949094526001600160a01b039290921660601b828201528051808303603401815260549092019052805191012090565b3390565b60008282018381101561233d5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600061233d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612483565b6001600160a01b0381166123ce57604051600160e51b62461bcd028152600401808060200182810382526026815260200180612f366026913960400191505060405180910390fd5b6034546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603480546001600160a01b0319166001600160a01b0392909216919091179055565b60008060606040518060200161243f90612568565b601f1982820381018352601f909101166040529050600061246086866122a3565b9050808251602084016000f59250823b61247957600080fd5b5090949350505050565b6000818484111561251557604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124da5781810151838201526020016124c2565b50505050905090810190601f1680156125075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b828054828255906000526020600020908101928215612558579160200282015b8281111561255857823582559160200191906001019061253d565b50612564929150612575565b5090565b6109a68061259083390190565b610c0d91905b80821115612564576000815560010161257b56fe608060405234801561001057600080fd5b50610986806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610516945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105a6945050505050565b34801561031257600080fd5b506101426106e6565b610323610711565b61033361032e610774565b610799565b565b61033d6107bd565b6001600160a01b0316336001600160a01b031614156103645761035f816107e2565b61036c565b61036c61031b565b50565b6103776107bd565b6001600160a01b0316336001600160a01b0316141561040f57610399836107e2565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b60006104266107bd565b6001600160a01b0316336001600160a01b0316141561044e57610447610774565b9050610456565b61045661031b565b90565b6104616107bd565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104c257604051600160e51b62461bcd0281526004018080602001828103825260368152602001806108ea6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104eb6107bd565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610822565b6000610520610774565b6001600160a01b03161461053357600080fd5b61053d83826105a6565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036000199091011461059d57fe5b61041782610822565b60006105b0610774565b6001600160a01b0316146105c357600080fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6000199091011461062357fe5b61062c82610846565b8051156106e2576000826001600160a01b0316826040518082805190602001908083835b6020831061066f5780518252601f199092019160209182019101610650565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146106cf576040519150601f19603f3d011682016040523d82523d6000602084013e6106d4565b606091505b505090508061041757600080fd5b5050565b60006106f06107bd565b6001600160a01b0316336001600160a01b0316141561044e576104476107bd565b6107196107bd565b6001600160a01b0316336001600160a01b0316141561076c57604051600160e51b62461bcd0281526004018080602001828103825260328152602001806108b86032913960400191505060405180910390fd5b610333610333565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156107b8573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6107eb81610846565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b61084f816108b1565b61088d57604051600160e51b62461bcd02815260040180806020018281038252603b815260200180610920603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a72305820acd86240912c703ba88ccefef3db77e88d3507353c7c194b0b27eed571ae96c900294f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a723058208efcb0a102060532468cbdde7807654fc180e7d5b340b370b178fbccc7dc7bd10029608060405234801561001057600080fd5b50610986806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610516945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105a6945050505050565b34801561031257600080fd5b506101426106e6565b610323610711565b61033361032e610774565b610799565b565b61033d6107bd565b6001600160a01b0316336001600160a01b031614156103645761035f816107e2565b61036c565b61036c61031b565b50565b6103776107bd565b6001600160a01b0316336001600160a01b0316141561040f57610399836107e2565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b60006104266107bd565b6001600160a01b0316336001600160a01b0316141561044e57610447610774565b9050610456565b61045661031b565b90565b6104616107bd565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104c257604051600160e51b62461bcd0281526004018080602001828103825260368152602001806108ea6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104eb6107bd565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610822565b6000610520610774565b6001600160a01b03161461053357600080fd5b61053d83826105a6565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036000199091011461059d57fe5b61041782610822565b60006105b0610774565b6001600160a01b0316146105c357600080fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6000199091011461062357fe5b61062c82610846565b8051156106e2576000826001600160a01b0316826040518082805190602001908083835b6020831061066f5780518252601f199092019160209182019101610650565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146106cf576040519150601f19603f3d011682016040523d82523d6000602084013e6106d4565b606091505b505090508061041757600080fd5b5050565b60006106f06107bd565b6001600160a01b0316336001600160a01b0316141561044e576104476107bd565b6107196107bd565b6001600160a01b0316336001600160a01b0316141561076c57604051600160e51b62461bcd0281526004018080602001828103825260328152602001806108b86032913960400191505060405180910390fd5b610333610333565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156107b8573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6107eb81610846565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b61084f816108b1565b61088d57604051600160e51b62461bcd02815260040180806020018281038252603b815260200180610920603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a72305820acd86240912c703ba88ccefef3db77e88d3507353c7c194b0b27eed571ae96c90029",
    "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063c07415f41161007c578063c07415f4146108b1578063c4d66de8146108d7578063c8748aa5146108fd578063cd75c7d41461092b578063e0a87de114610951578063f2fde38b146109775761014d565b8063715018a61461077d57806381ae1f5b146107855780638da5cb5b146107b15780638f32d59b146107b9578063a7428f33146107c1578063b3eeb5e2146107fd5761014d565b8063485cc95511610115578063485cc955146104fb5780634a161b271461052b5780635e7e8388146105515780635ee84984146106035780636150864c1461063b5780636601b975146106ff5761014d565b8063290f8f5614610152578063332d6626146102b75780633d07d20b146104005780633ea6c82d146104695780634434f973146104a3575b600080fd5b61029b600480360360a081101561016857600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b8111156101a257600080fd5b8201836020820111156101b457600080fd5b803590602001918460018302840111600160201b831117156101d557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561022757600080fd5b82018360208201111561023957600080fd5b803590602001918460018302840111600160201b8311171561025a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061099d945050505050565b604080516001600160a01b039092168252519081900360200190f35b61029b600480360360a08110156102cd57600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561030757600080fd5b82018360208201111561031957600080fd5b803590602001918460018302840111600160201b8311171561033a57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561038c57600080fd5b82018360208201111561039e57600080fd5b803590602001918460018302840111600160201b831117156103bf57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a8c945050505050565b61042e6004803603604081101561041657600080fd5b506001600160a01b0381358116916020013516610b09565b604080516001600160a01b03968716815260208101959095528481019390935293166060830152911515608082015290519081900360a00190f35b61048f6004803603602081101561047f57600080fd5b50356001600160a01b0316610b54565b604080519115158252519081900360200190f35b6104ab610bad565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104e75781810151838201526020016104cf565b505050509050019250505060405180910390f35b6105296004803603604081101561051157600080fd5b506001600160a01b0381358116916020013516610c10565b005b61029b6004803603602081101561054157600080fd5b50356001600160a01b0316610cef565b610529600480360361014081101561056857600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a082013583169260c0830135169190810190610100810160e0820135600160201b8111156105bd57600080fd5b8201836020820111156105cf57600080fd5b803590602001918460018302840111600160201b831117156105f057600080fd5b9193509150803590602001351515610d0d565b6105296004803603606081101561061957600080fd5b506001600160a01b0381358116916020810135821691604090910135166116f8565b61029b6004803603608081101561065157600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561068b57600080fd5b82018360208201111561069d57600080fd5b803590602001918460018302840111600160201b831117156106be57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118a9945050505050565b6105296004803603604081101561071557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561073f57600080fd5b82018360208201111561075157600080fd5b803590602001918460208302840111600160201b8311171561077257600080fd5b5090925090506118c1565b6105296118ea565b61029b6004803603604081101561079b57600080fd5b50803590602001356001600160a01b0316611990565b61029b6119f7565b61048f611a06565b610529600480360360808110156107d757600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135611a2c565b61029b6004803603604081101561081357600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561083d57600080fd5b82018360208201111561084f57600080fd5b803590602001918460018302840111600160201b8311171561087057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611c81945050505050565b6104ab600480360360208110156108c757600080fd5b50356001600160a01b0316611de2565b610529600480360360208110156108ed57600080fd5b50356001600160a01b0316611e4e565b61029b6004803603604081101561091357600080fd5b506001600160a01b0381358116916020013516611f42565b61029b6004803603602081101561094157600080fd5b50356001600160a01b0316611f6f565b61029b6004803603602081101561096757600080fd5b50356001600160a01b0316611f8d565b6105296004803603602081101561098d57600080fd5b50356001600160a01b0316611fc2565b600080610a75878787873060405160200180868152602001856001600160a01b03166001600160a01b031660601b8152601401846001600160a01b03166001600160a01b031660601b815260140183805190602001908083835b60208310610a165780518252601f1990920191602091820191016109f7565b6001836020036101000a038019825116818451168082178552505050505050905001826001600160a01b03166001600160a01b031660601b8152601401955050505050506040516020818303038152906040528051906020012061202a565b9050610a81818461207b565b979650505050505050565b600080610a9c878787878761099d565b90506001600160a01b038116610afc5760408051600160e51b62461bcd02815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b610a818787878785612169565b6001600160a01b03918216600090815260686020908152604080832093851683529290522060068101546002820154600183015492548285169591941691600160a01b900460ff1690565b6001600160a01b038181166000908152606b6020526040812054909116151580610b9757506001600160a01b038281166000908152606a60205260409020541615155b15610ba457506001610ba8565b5060005b919050565b60606067805480602002602001604051908101604052809291908181526020018280548015610c0557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610be7575b505050505090505b90565b600154610100900460ff1680610c295750610c2961229d565b80610c37575060015460ff16155b610c7557604051600160e51b62461bcd02815260040180806020018281038252602e815260200180612f5c602e913960400191505060405180910390fd5b600154610100900460ff16158015610c9f576001805460ff1961ff00199091166101001716811790555b610ca833611e4e565b606c80546001600160a01b038086166001600160a01b031992831617909255606d8054928516929091169190911790558015610cea576001805461ff00191690555b505050565b6001600160a01b039081166000908152606b60205260409020541690565b6001600160a01b0386163314610d6d5760408051600160e51b62461bcd02815260206004820181905260248201527f556e617574686f72697a656420697373756572206f662073656375726974792e604482015290519081900360640190fd5b606084846020811015610d7f57600080fd5b810190602081018135600160201b811115610d9957600080fd5b820183602082011115610dab57600080fd5b803590602001918460208302840111600160201b83111715610dcc57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929650505050506001600160a01b038e16151591506112c5905057606d5460408051602481018d9052604481018c90523060648201526001600160a01b03808b16608483015292831660a48201528a831660c4808301919091528251808303909101815260e49091019091526020810180516001600160e01b0316600160e21b632274a71302179052606c549091600091610e98911683611c81565b90508a60686000836001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b03168152602001908152602001600020600201819055508b60686000836001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b03168152602001908152602001600020600101819055508960686000836001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b0316815260200190815260200160002060000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060686000836001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b0316815260200190815260200160002060060160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508760686000836001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b0316815260200190815260200160002060050160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508360686000836001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b0316815260200190815260200160002060060160146101000a81548160ff02191690831515021790555088606a6000836001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508d606b6000836001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060678190806001815401808255809150509060018203906000526020600020016000909192909190916101000a8154816001600160a01b0302191690836001600160a01b0316021790555050806001600160a01b03167fac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc8e8b8e8e898e8a8d60405180898152602001886001600160a01b03166001600160a01b03168152602001878152602001866001600160a01b03166001600160a01b0316815260200185151515158152602001846001600160a01b03166001600160a01b0316815260200180602001838152602001828103825284818151815260200191508051906020019060200280838360005b838110156112a457818101518382015260200161128c565b50505050905001995050505050505050505060405180910390a250506116ea565b88606860008e6001600160a01b03166001600160a01b031681526020019081526020016000206000896001600160a01b03166001600160a01b031681526020019081526020016000206002018190555089606860008e6001600160a01b03166001600160a01b031681526020019081526020016000206000896001600160a01b03166001600160a01b031681526020019081526020016000206001018190555087606860008e6001600160a01b03166001600160a01b031681526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002060000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508b606860008e6001600160a01b03166001600160a01b031681526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002060060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555085606860008e6001600160a01b03166001600160a01b031681526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002060050160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081606860008e6001600160a01b03166001600160a01b031681526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002060060160146101000a81548160ff02191690831515021790555086606a60008e6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508b606b60008e6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060678c90806001815401808255809150509060018203906000526020600020016000909192909190916101000a8154816001600160a01b0302191690836001600160a01b03160217905550508b6001600160a01b03167fac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc8c898c8c878c888b60405180898152602001886001600160a01b03166001600160a01b03168152602001878152602001866001600160a01b03166001600160a01b0316815260200185151515158152602001846001600160a01b03166001600160a01b0316815260200180602001838152602001828103825284818151815260200191508051906020019060200280838360005b838110156116cf5781810151838201526020016116b7565b50505050905001995050505050505050505060405180910390a25b505050505050505050505050565b6001600160a01b038381166000908152606860209081526040808320606a835281842054851684529091529020600501541633146117805760408051600160e51b62461bcd02815260206004820152601a60248201527f496e636f727265637420637573746f6469616e20736574207570000000000000604482015290519081900360640190fd5b606d5460408051600160e01b63442767330281526001600160a01b03848116600483015291516000939290921691634427673391602480820192606092909190829003018186803b1580156117d457600080fd5b505afa1580156117e8573d6000803e3d6000fd5b505050506040513d60608110156117fe57600080fd5b50519050600160b91b6821bab9ba37b234b0b70281146118685760408051600160e51b62461bcd02815260206004820152601160248201527f496e76616c696420637573746f6469616e000000000000000000000000000000604482015290519081900360640190fd5b506001600160a01b03928316600090815260686020908152604080832094861683529390529190912060040180546001600160a01b03191691909216179055565b60006118b88585858533612169565b95945050505050565b6001600160a01b03831660009081526069602052604090206118e490838361251d565b50505050565b6118f2611a06565b6119465760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6034546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603480546001600160a01b0319169055565b60008061199d84846122a3565b600054604080516001600160f81b031960208083019190915230606090811b602184015260358301959095526055808301949094528251808303909401845260759091019091528151910120811b901c9150505b92915050565b6034546001600160a01b031690565b6034546000906001600160a01b0316611a1d6122dc565b6001600160a01b031614905090565b6001600160a01b038481166000908152606a6020526040902054163314611a9d5760408051600160e51b62461bcd02815260206004820152601360248201527f556e617574686f72697a65642061636365737300000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03831615611bd6576001600160a01b03808516600090815260686020908152604080832093861683529290522060030154611adf90826122e0565b6001600160a01b03858116600090815260686020908152604080832087851684529091528082206003908101949094559186168152200154611b219082612344565b6001600160a01b03808616600081815260686020908152604080832089861680855281845282852060030197909755938352606a82528083205485168352929052818120600601548251600160e11b637aa9bf6f02815260048101959095528684166024860152604485018690529151919092169263f5537ede92606480830193919282900301818387803b158015611bb957600080fd5b505af1158015611bcd573d6000803e3d6000fd5b505050506118e4565b6001600160a01b038085166000818152606860209081526040808320878616808552818452828520600301889055948452606a83528184205486168452909152808220600601548151600160e31b630f38ca0d02815260048101949094526024840186905290519316926379c6506892604480820193929182900301818387803b158015611c6357600080fd5b505af1158015611c77573d6000803e3d6000fd5b5050505050505050565b6000808360601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0604080516001600160a01b038316815290519194507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349925081900360200190a1825115611ddb576000826001600160a01b0316846040518082805190602001908083835b60208310611d645780518252601f199092019160209182019101611d45565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611dc6576040519150601f19603f3d011682016040523d82523d6000602084013e611dcb565b606091505b5050905080611dd957600080fd5b505b5092915050565b6001600160a01b038116600090815260696020908152604091829020805483518184028101840190945280845260609392830182828015611e4257602002820191906000526020600020905b815481526020019060010190808311611e2e575b50505050509050919050565b600154610100900460ff1680611e675750611e6761229d565b80611e75575060015460ff16155b611eb357604051600160e51b62461bcd02815260040180806020018281038252602e815260200180612f5c602e913960400191505060405180910390fd5b600154610100900460ff16158015611edd576001805460ff1961ff00199091166101001716811790555b603480546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38015611f3e576001805461ff00191690555b5050565b6001600160a01b039182166000908152606860209081526040808320938516835292905220600401541690565b6001600160a01b039081166000908152606a60205260409020541690565b6001600160a01b039081166000908152606860209081526040808320606a835281842054851684529091529020600501541690565b611fca611a06565b61201e5760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61202781612386565b50565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461208e575060006119f1565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156120d457600093505050506119f1565b8060ff16601b141580156120ec57508060ff16601c14155b156120fd57600093505050506119f1565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015612154573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b600080612176878461242a565b604080516001600160a01b038316815290519192507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349919081900360200190a1604051600160e01b63cf7a1d770281526001600160a01b038781166004830190815287821660248401526060604484019081528751606485015287519285169363cf7a1d77938b938b938b939192909160840190602085019080838360005b8381101561222c578181015183820152602001612214565b50505050905090810190601f1680156122595780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561227a57600080fd5b505af115801561228e573d6000803e3d6000fd5b50929998505050505050505050565b303b1590565b604080516020808201949094526001600160a01b039290921660601b828201528051808303603401815260549092019052805191012090565b3390565b60008282018381101561233d5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600061233d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612483565b6001600160a01b0381166123ce57604051600160e51b62461bcd028152600401808060200182810382526026815260200180612f366026913960400191505060405180910390fd5b6034546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603480546001600160a01b0319166001600160a01b0392909216919091179055565b60008060606040518060200161243f90612568565b601f1982820381018352601f909101166040529050600061246086866122a3565b9050808251602084016000f59250823b61247957600080fd5b5090949350505050565b6000818484111561251557604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124da5781810151838201526020016124c2565b50505050905090810190601f1680156125075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b828054828255906000526020600020908101928215612558579160200282015b8281111561255857823582559160200191906001019061253d565b50612564929150612575565b5090565b6109a68061259083390190565b610c0d91905b80821115612564576000815560010161257b56fe608060405234801561001057600080fd5b50610986806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610516945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105a6945050505050565b34801561031257600080fd5b506101426106e6565b610323610711565b61033361032e610774565b610799565b565b61033d6107bd565b6001600160a01b0316336001600160a01b031614156103645761035f816107e2565b61036c565b61036c61031b565b50565b6103776107bd565b6001600160a01b0316336001600160a01b0316141561040f57610399836107e2565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b60006104266107bd565b6001600160a01b0316336001600160a01b0316141561044e57610447610774565b9050610456565b61045661031b565b90565b6104616107bd565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104c257604051600160e51b62461bcd0281526004018080602001828103825260368152602001806108ea6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104eb6107bd565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610822565b6000610520610774565b6001600160a01b03161461053357600080fd5b61053d83826105a6565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036000199091011461059d57fe5b61041782610822565b60006105b0610774565b6001600160a01b0316146105c357600080fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6000199091011461062357fe5b61062c82610846565b8051156106e2576000826001600160a01b0316826040518082805190602001908083835b6020831061066f5780518252601f199092019160209182019101610650565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146106cf576040519150601f19603f3d011682016040523d82523d6000602084013e6106d4565b606091505b505090508061041757600080fd5b5050565b60006106f06107bd565b6001600160a01b0316336001600160a01b0316141561044e576104476107bd565b6107196107bd565b6001600160a01b0316336001600160a01b0316141561076c57604051600160e51b62461bcd0281526004018080602001828103825260328152602001806108b86032913960400191505060405180910390fd5b610333610333565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156107b8573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6107eb81610846565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b61084f816108b1565b61088d57604051600160e51b62461bcd02815260040180806020018281038252603b815260200180610920603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a72305820acd86240912c703ba88ccefef3db77e88d3507353c7c194b0b27eed571ae96c900294f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a723058208efcb0a102060532468cbdde7807654fc180e7d5b340b370b178fbccc7dc7bd10029",
    "sourceMap": "607:6579:21:-;;;;;283:56:14;;;:::i;:::-;-1:-1:-1;;21:26;;;;;7:41;;87:2;69:12;;;65:26;61:2;54:38;266:79:14;;41:4:-1;30:16;;;;266:79:14;247:16;:98;607:6579:21;;;;;;;;;;:::o;:::-;;;;;;;",
    "deployedSourceMap": "607:6579:21:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;607:6579:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2132:408:14;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2132:408:14;;;-1:-1:-1;;;;;2132:408:14;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2132:408:14;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2132:408:14;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2132:408:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2132:408:14;;;;;;;;-1:-1:-1;2132:408:14;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;2132:408:14;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2132:408:14;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2132:408:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2132:408:14;;-1:-1:-1;2132:408:14;;-1:-1:-1;;;;;2132:408:14:i;:::-;;;;-1:-1:-1;;;;;2132:408:14;;;;;;;;;;;;;;1288:337;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1288:337:14;;;-1:-1:-1;;;;;1288:337:14;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1288:337:14;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1288:337:14;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1288:337:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1288:337:14;;;;;;;;-1:-1:-1;1288:337:14;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1288:337:14;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1288:337:14;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1288:337:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1288:337:14;;-1:-1:-1;1288:337:14;;-1:-1:-1;;;;;1288:337:14:i;4529:505:21:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4529:505:21;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;4529:505:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5877:220;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5877:220:21;-1:-1:-1;;;;;5877:220:21;;:::i;:::-;;;;;;;;;;;;;;;;;;1838:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1838:92:21;;;;;;;;;;;;;;;;;1642:188;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1642:188:21;;;;;;;;;;:::i;:::-;;4390:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4390:131:21;-1:-1:-1;;;;;4390:131:21;;:::i;1938:2314::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;1938:2314:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1938:2314:21;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1938:2314:21;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1938:2314:21;;-1:-1:-1;1938:2314:21;-1:-1:-1;1938:2314:21;;;;;;;;;:::i;6105:432::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6105:432:21;;;;;;;;;;;;;;;;;;;:::i;1104:180:14:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1104:180:14;;;-1:-1:-1;;;;;1104:180:14;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1104:180:14;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1104:180:14;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1104:180:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1104:180:14;;-1:-1:-1;1104:180:14;;-1:-1:-1;;;;;1104:180:14:i;6733:135:21:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;6733:135:21;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6733:135:21;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6733:135:21;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;6733:135:21;;-1:-1:-1;6733:135:21;-1:-1:-1;6733:135:21;:::i;1746:137:3:-;;;:::i;1629:499:14:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1629:499:14;;;;;;-1:-1:-1;;;;;1629:499:14;;:::i;959:77:3:-;;;:::i;1310:92::-;;;:::i;5046:823:21:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;5046:823:21;;;;;;;;;;;;;;;;;;;;;;:::i;354:746:14:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;354:746:14;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;354:746:14;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;354:746:14;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;354:746:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;354:746:14;;-1:-1:-1;354:746:14;;-1:-1:-1;;;;;354:746:14:i;6876:136:21:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6876:136:21;-1:-1:-1;;;;;6876:136:21;;:::i;741:142:3:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;741:142:3;-1:-1:-1;;;;;741:142:3;;:::i;6545:180:21:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6545:180:21;;;;;;;;;;:::i;4260:122::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4260:122:21;-1:-1:-1;;;;;4260:122:21;;:::i;7020:157::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7020:157:21;-1:-1:-1;;;;;7020:157:21;;:::i;2032:107:3:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2032:107:3;-1:-1:-1;;;;;2032:107:3;;:::i;2132:408:14:-;2264:7;2279:15;2297:170;2400:5;2407:6;2415;2423:5;2438:4;2372:81;;;;;;;;;;;-1:-1:-1;;;;;2372:81:14;-1:-1:-1;;;;;2372:81:14;;;;;;;;-1:-1:-1;;;;;2372:81:14;-1:-1:-1;;;;;2372:81:14;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2372:81:14;;;;;;;-1:-1:-1;;;;;2372:81:14;-1:-1:-1;;;;;2372:81:14;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2372:81:14;;;2353:108;;;;;;2297:48;:170::i;:::-;2279:188;;2481:54;2515:7;2524:10;2481:33;:54::i;:::-;2474:61;2132:408;-1:-1:-1;;;;;;;2132:408:14:o;1288:337::-;1418:7;1433:14;1450:51;1460:5;1467:6;1475;1483:5;1490:10;1450:9;:51::i;:::-;1433:68;-1:-1:-1;;;;;;1515:20:14;;1507:50;;;;;-1:-1:-1;;;;;1507:50:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570;1583:5;1590:6;1598;1606:5;1613:6;1570:12;:50::i;4529:505:21:-;-1:-1:-1;;;;;4677:34:21;;;4618:7;4677:34;;;:18;:34;;;;;;;;:43;;;;;;;;;:49;;;;4746:48;;;;4677:49;4813:51;;;4883:52;;4677:49;;;;4746:48;;4883:52;;-1:-1:-1;;;4954:53:21;;;;;4529:505::o;5877:220::-;-1:-1:-1;;;;;5955:21:21;;;5936:4;5955:21;;;:14;:21;;;;;;5936:4;;5955:21;:35;;;:67;;-1:-1:-1;;;;;;5994:14:21;;;6018:3;5994:14;;;:7;:14;;;;;;;:28;;5955:67;5952:137;;;-1:-1:-1;6044:4:21;6037:11;;5952:137;-1:-1:-1;6084:5:21;5952:137;5877:220;;;:::o;1838:92::-;1881:16;1916:6;1909:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1909:13:21;;;;;;;;;;;;;;;;;;;;;;;1838:92;;:::o;1642:188::-;1024:12:7;;;;;;;;:31;;;1040:15;:13;:15::i;:::-;1024:47;;;-1:-1:-1;1060:11:7;;;;1059:12;1024:47;1016:106;;;;-1:-1:-1;;;;;1016:106:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;1151:13;1170:80;;;;1213:4;1198:19;;-1:-1:-1;;;;1198:19:7;;;;;1225:18;;;;;1170:80;1727:30:21;1746:10;1727:18;:30::i;:::-;1768:15;:27;;-1:-1:-1;;;;;1768:27:21;;;-1:-1:-1;;;;;;1768:27:21;;;;;;;1806:6;:16;;;;;;;;;;;;;;;1264:55:7;;;;1292:12;:20;;-1:-1:-1;;1292:20:7;;;1264:55;1642:188:21;;;:::o;4390:131::-;-1:-1:-1;;;;;4483:30:21;;;4457:7;4483:30;;;:14;:30;;;;;;;;4390:131::o;1938:2314::-;-1:-1:-1;;;;;2220:18:21;;2228:10;2220:18;2212:63;;;;;-1:-1:-1;;;;;2212:63:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2287:29;2331:19;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2320:44:21;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2320:44:21;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2320:44:21;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2320:44:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2320:44:21;;-1:-1:-1;;;;;;;;;;2378:22:21;;;2375:1870;;-1:-1:-1;2375:1870:21;;-1:-1:-1;2375:1870:21;2596:6;;2471:142;;;;;;;;;;;;;;;2581:4;2471:142;;;;-1:-1:-1;;;;;2471:142:21;;;;;;;2596:6;;;2471:142;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2471:142:21;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;179:29;160:49;;2696:15:21;;2471:142;;2596:6;;2682:40;;2696:15;2471:142;2682:13;:40::i;:::-;2657:65;;2788:4;2739:18;:34;2758:14;-1:-1:-1;;;;;2739:34:21;-1:-1:-1;;;;;2739:34:21;;;;;;;;;;;;:42;2774:6;-1:-1:-1;;;;;2739:42:21;-1:-1:-1;;;;;2739:42:21;;;;;;;;;;;;:47;;:53;;;;2860:7;2807:18;:34;2826:14;-1:-1:-1;;;;;2807:34:21;-1:-1:-1;;;;;2807:34:21;;;;;;;;;;;;:42;2842:6;-1:-1:-1;;;;;2807:42:21;-1:-1:-1;;;;;2807:42:21;;;;;;;;;;;;:50;;:60;;;;2935:8;2882:18;:34;2901:14;-1:-1:-1;;;;;2882:34:21;-1:-1:-1;;;;;2882:34:21;;;;;;;;;;;;:42;2917:6;-1:-1:-1;;;;;2882:42:21;-1:-1:-1;;;;;2882:42:21;;;;;;;;;;;;:51;;;:61;;;;;-1:-1:-1;;;;;2882:61:21;;;;;-1:-1:-1;;;;;2882:61:21;;;;;;3009:14;2958:18;:34;2977:14;-1:-1:-1;;;;;2958:34:21;-1:-1:-1;;;;;2958:34:21;;;;;;;;;;;;:42;2993:6;-1:-1:-1;;;;;2958:42:21;-1:-1:-1;;;;;2958:42:21;;;;;;;;;;;;:48;;;:65;;;;;-1:-1:-1;;;;;2958:65:21;;;;;-1:-1:-1;;;;;2958:65:21;;;;;;3086:12;3038:18;:34;3057:14;-1:-1:-1;;;;;3038:34:21;-1:-1:-1;;;;;3038:34:21;;;;;;;;;;;;:42;3073:6;-1:-1:-1;;;;;3038:42:21;-1:-1:-1;;;;;3038:42:21;;;;;;;;;;;;:45;;;:60;;;;;-1:-1:-1;;;;;3038:60:21;;;;;-1:-1:-1;;;;;3038:60:21;;;;;;3168:9;3113:18;:34;3132:14;-1:-1:-1;;;;;3113:34:21;-1:-1:-1;;;;;3113:34:21;;;;;;;;;;;;:42;3148:6;-1:-1:-1;;;;;3113:42:21;-1:-1:-1;;;;;3113:42:21;;;;;;;;;;;;:52;;;:64;;;;;;;;;;;;;;;;;;3228:6;3202:7;:23;3210:14;-1:-1:-1;;;;;3202:23:21;-1:-1:-1;;;;;3202:23:21;;;;;;;;;;;;;:32;;;;;-1:-1:-1;;;;;3202:32:21;;;;;-1:-1:-1;;;;;3202:32:21;;;;;;3285:8;3252:14;:30;3267:14;-1:-1:-1;;;;;3252:30:21;-1:-1:-1;;;;;3252:30:21;;;;;;;;;;;;;:41;;;;;-1:-1:-1;;;;;3252:41:21;;;;;-1:-1:-1;;;;;3252:41:21;;;;;;3308:6;3320:14;3308:27;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3308:27:21;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3308:27:21;;;;;-1:-1:-1;;;;;3308:27:21;;;;;;;3381:14;-1:-1:-1;;;;;3365:120:21;;3397:15;3414:6;3422:4;3428:8;3438:9;3449:12;3463;3477:7;3365:120;;;;;;;;;-1:-1:-1;;;;;3365:120:21;-1:-1:-1;;;;;3365:120:21;;;;;;;;;;;-1:-1:-1;;;;;3365:120:21;-1:-1:-1;;;;;3365:120:21;;;;;;;;;;;;;;;-1:-1:-1;;;;;3365:120:21;-1:-1:-1;;;;;3365:120:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3365:120:21;;;;;;;;;;;;;;;;;;;;;;;;2375:1870;;;;;3592:4;3549:18;:28;3568:8;-1:-1:-1;;;;;3549:28:21;-1:-1:-1;;;;;3549:28:21;;;;;;;;;;;;:36;3578:6;-1:-1:-1;;;;;3549:36:21;-1:-1:-1;;;;;3549:36:21;;;;;;;;;;;;:41;;:47;;;;3658:7;3611:18;:28;3630:8;-1:-1:-1;;;;;3611:28:21;-1:-1:-1;;;;;3611:28:21;;;;;;;;;;;;:36;3640:6;-1:-1:-1;;;;;3611:36:21;-1:-1:-1;;;;;3611:36:21;;;;;;;;;;;;:44;;:54;;;;3727:8;3680:18;:28;3699:8;-1:-1:-1;;;;;3680:28:21;-1:-1:-1;;;;;3680:28:21;;;;;;;;;;;;:36;3709:6;-1:-1:-1;;;;;3680:36:21;-1:-1:-1;;;;;3680:36:21;;;;;;;;;;;;:45;;;:55;;;;;-1:-1:-1;;;;;3680:55:21;;;;;-1:-1:-1;;;;;3680:55:21;;;;;;3795:8;3750:18;:28;3769:8;-1:-1:-1;;;;;3750:28:21;-1:-1:-1;;;;;3750:28:21;;;;;;;;;;;;:36;3779:6;-1:-1:-1;;;;;3750:36:21;-1:-1:-1;;;;;3750:36:21;;;;;;;;;;;;:42;;;:53;;;;;-1:-1:-1;;;;;3750:53:21;;;;;-1:-1:-1;;;;;3750:53:21;;;;;;3860:12;3818:18;:28;3837:8;-1:-1:-1;;;;;3818:28:21;-1:-1:-1;;;;;3818:28:21;;;;;;;;;;;;:36;3847:6;-1:-1:-1;;;;;3818:36:21;-1:-1:-1;;;;;3818:36:21;;;;;;;;;;;;:39;;;:54;;;;;-1:-1:-1;;;;;3818:54:21;;;;;-1:-1:-1;;;;;3818:54:21;;;;;;3936:9;3887:18;:28;3906:8;-1:-1:-1;;;;;3887:28:21;-1:-1:-1;;;;;3887:28:21;;;;;;;;;;;;:36;3916:6;-1:-1:-1;;;;;3887:36:21;-1:-1:-1;;;;;3887:36:21;;;;;;;;;;;;:46;;;:58;;;;;;;;;;;;;;;;;;3990:6;3970:7;:17;3978:8;-1:-1:-1;;;;;3970:17:21;-1:-1:-1;;;;;3970:17:21;;;;;;;;;;;;;:26;;;;;-1:-1:-1;;;;;3970:26:21;;;;;-1:-1:-1;;;;;3970:26:21;;;;;;4041:8;4014:14;:24;4029:8;-1:-1:-1;;;;;4014:24:21;-1:-1:-1;;;;;4014:24:21;;;;;;;;;;;;;:35;;;;;-1:-1:-1;;;;;4014:35:21;;;;;-1:-1:-1;;;;;4014:35:21;;;;;;4064:6;4076:8;4064:21;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;4064:21:21;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4064:21:21;;;;;-1:-1:-1;;;;;4064:21:21;;;;;;;4135:8;-1:-1:-1;;;;;4119:114:21;;4145:15;4162:6;4170:4;4176:8;4186:9;4197:12;4211;4225:7;4119:114;;;;;;;;;-1:-1:-1;;;;;4119:114:21;-1:-1:-1;;;;;4119:114:21;;;;;;;;;;;-1:-1:-1;;;;;4119:114:21;-1:-1:-1;;;;;4119:114:21;;;;;;;;;;;;;;;-1:-1:-1;;;;;4119:114:21;-1:-1:-1;;;;;4119:114:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4119:114:21;;;;;;;;;;;;;;;;;;;;;;;;2375:1870;1938:2314;;;;;;;;;;;;:::o;6105:432::-;-1:-1:-1;;;;;6228:34:21;;;;;;;:18;:34;;;;;;;;6263:7;:23;;;;;;;;6228:59;;;;;;;:62;;;;6216:10;:74;6208:113;;;;;-1:-1:-1;;;;;6208:113:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;6367:6;;6352:42;;;-1:-1:-1;;;;;6352:42:21;;-1:-1:-1;;;;;6352:42:21;;;;;;;;;6333:12;;6367:6;;;;;6352:30;;:42;;;;;;;;;;;;;;;6367:6;6352:42;;;5:2:-1;;;;30:1;27;20:12;5:2;6352:42:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6352:42:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6352:42:21;;-1:-1:-1;;;;;;6413:17:21;;6405:47;;;;;-1:-1:-1;;;;;6405:47:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6463:34:21;;;;;;;:18;:34;;;;;;;;:43;;;;;;;;;;;;:53;;:66;;-1:-1:-1;;;;;;6463:66:21;;;;;;;;6105:432::o;1104:180:14:-;1203:7;1225:54;1238:5;1245:6;1253;1261:5;1268:10;1225:12;:54::i;:::-;1218:61;1104:180;-1:-1:-1;;;;;1104:180:14:o;6733:135:21:-;-1:-1:-1;;;;;6827:20:21;;;;;;:9;:20;;;;;:33;;6850:10;;6827:33;:::i;:::-;;6733:135;;;:::o;1746:137:3:-;1163:9;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1828:6;;1807:40;;1844:1;;-1:-1:-1;;;;;1828:6:3;;1807:40;;1844:1;;1807:40;1857:6;:19;;-1:-1:-1;;;;;;1857:19:3;;;1746:137::o;1629:499:14:-;1712:7;1877:12;1892:24;1901:5;1908:7;1892:8;:24::i;:::-;1922:18;2045:16;1960:109;;;-1:-1:-1;;;;;;1960:109:14;;;;;;;;2016:4;1960:109;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1960:109:14;;;;;;;1943:132;;;;;2105:16;;2089:34;;;-1:-1:-1;;1629:499:14;;;;;:::o;959:77:3:-;1023:6;;-1:-1:-1;;;;;1023:6:3;959:77;:::o;1310:92::-;1389:6;;1350:4;;-1:-1:-1;;;;;1389:6:3;1373:12;:10;:12::i;:::-;-1:-1:-1;;;;;1373:22:3;;1366:29;;1310:92;:::o;5046:823:21:-;-1:-1:-1;;;;;5168:17:21;;;;;;;:7;:17;;;;;;;5187:10;5168:29;5160:61;;;;;-1:-1:-1;;;;;5160:61:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5237:24:21;;;5234:628;;-1:-1:-1;;;;;5339:28:21;;;;;;;:18;:28;;;;;;;;:40;;;;;;;;;:47;;;5326:69;;5388:6;5326:12;:69::i;:::-;-1:-1:-1;;;;;5277:28:21;;;;;;;:18;:28;;;;;;;;:40;;;;;;;;;;;:47;;;;:118;;;;5472:40;;;;;;:47;;5459:69;;5521:6;5459:12;:69::i;:::-;-1:-1:-1;;;;;5410:28:21;;;;;;;:18;:28;;;;;;;;:40;;;;;;;;;;;;:47;;:118;;;;5553:28;;;5582:7;:17;;;;;;;;5553:47;;;;;;;;:53;;;5543:110;;-1:-1:-1;;;;;5543:110:21;;;;;;;;;;;;;;;;;;;;;;;;5553:53;;;;;5543:78;;:110;;;;;5410:28;;5543:110;;;;;5410:28;5553:53;5543:110;;;5:2:-1;;;;30:1;27;20:12;5:2;5543:110:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5543:110:21;;;;5234:628;;;-1:-1:-1;;;;;5686:28:21;;;;;;;:18;:28;;;;;;;;:40;;;;;;;;;;;;:47;;:55;;;5766:28;;;5795:7;:17;;;;;;;;5766:47;;;;;;;;:53;;;5756:94;;-1:-1:-1;;;;;5756:94:21;;;;;;;;;;;;;;;;;5766:53;;;5756:74;;:94;;;;;5686:28;5756:94;;;;;;5686:28;5766:53;5756:94;;;5:2:-1;;;;30:1;27;20:12;5:2;5756:94:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5756:94:21;;;;5046:823;;;;:::o;354:746:14:-;429:13;588:19;618:6;610:15;;588:37;;667:4;661:11;693:66;686:5;679:81;792:11;785:4;778:5;774:16;767:37;836:66;829:4;822:5;818:16;811:92;936:4;929:5;926:1;919:22;962:28;;;-1:-1:-1;;;;;962:28:14;;;;;;910:31;;-1:-1:-1;962:28:14;;-1:-1:-1;962:28:14;;;;;;;1000:12;;:16;997:95;;1027:12;1044:5;-1:-1:-1;;;;;1044:10:14;1055:5;1044:17;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1044:17:14;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1026:35:14;;;1077:7;1069:16;;;;;;997:95;;354:746;;;;;:::o;6876:136:21:-;-1:-1:-1;;;;;6984:20:21;;;;;;:9;:20;;;;;;;;;6977:27;;;;;;;;;;;;;;;;;6949:16;;6977:27;;;6984:20;6977:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6876:136;;;:::o;741:142:3:-;1024:12:7;;;;;;;;:31;;;1040:15;:13;:15::i;:::-;1024:47;;;-1:-1:-1;1060:11:7;;;;1059:12;1024:47;1016:106;;;;-1:-1:-1;;;;;1016:106:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;1151:13;1170:80;;;;1213:4;1198:19;;-1:-1:-1;;;;1198:19:7;;;;;1225:18;;;;;1170:80;806:6:3;:15;;-1:-1:-1;;;;;;806:15:3;-1:-1:-1;;;;;806:15:3;;;;;;;;;;;836:40;;869:6;;;-1:-1:-1;;836:40:3;;-1:-1:-1;;836:40:3;1268:14:7;1264:55;;;1292:12;:20;;-1:-1:-1;;1292:20:7;;;1264:55;741:142:3;;:::o;6545:180:21:-;-1:-1:-1;;;;;6664:34:21;;;6630:7;6664:34;;;:18;:34;;;;;;;;:43;;;;;;;;;:53;;;;;6545:180::o;4260:122::-;-1:-1:-1;;;;;4351:23:21;;;4325:7;4351:23;;;:7;:23;;;;;;;;4260:122::o;7020:157::-;-1:-1:-1;;;;;7107:34:21;;;7081:7;7107:34;;;:18;:34;;;;;;;;7142:7;:23;;;;;;;;7107:59;;;;;;;:62;;;;;7020:157::o;2032:107:3:-;1163:9;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2104:28;2123:8;2104:18;:28::i;:::-;2032:107;:::o;3142:265:8:-;3341:58;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3341:58:8;;;;;;;3331:69;;;;;;3142:265::o;1101:1891::-;1179:7;1240:9;:16;1260:2;1240:22;1236:72;;-1:-1:-1;1294:1:8;1278:19;;1236:72;1658:4;1643:20;;1637:27;1703:4;1688:20;;1682:27;1756:4;1741:20;;1735:27;1374:9;1727:36;2674:66;2661:79;;2657:127;;;2771:1;2756:17;;;;;;;2657:127;2798:1;:7;;2803:2;2798:7;;:18;;;;;2809:1;:7;;2814:2;2809:7;;2798:18;2794:66;;;2847:1;2832:17;;;;;;;2794:66;2961:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2961:24:8;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2961:24:8;;-1:-1:-1;;2961:24:8;;;1101:1891;-1:-1:-1;;;;;;;1101:1891:8:o;2544:329:14:-;2668:7;2683:43;2729:28;2742:5;2749:7;2729:12;:28::i;:::-;2768;;;-1:-1:-1;;;;;2768:28:14;;;;;;2683:74;;-1:-1:-1;2768:28:14;;;;;;;;;;2802:39;;-1:-1:-1;;;;;2802:39:14;;-1:-1:-1;;;;;2802:39:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;;;;;;2819:6;;2827;;2835:5;;2802:39;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2802:39:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2802:39:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2862:5:14;;2544:329;-1:-1:-1;;;;;;;;;2544:329:14:o;1409:498:7:-;1820:4;1864:17;1895:7;1409:498;:::o;3356:144:14:-;3461:32;;;;;;;;;;;-1:-1:-1;;;;;3461:32:14;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;3461:32:14;;;;;;3451:43;;;;;;3356:144::o;867:96:0:-;946:10;867:96;:::o;834:176:2:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:2:o;1274:134::-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;2240:225:3:-;-1:-1:-1;;;;;2313:22:3;;2305:73;;;;-1:-1:-1;;;;;2305:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2414:6;;2393:38;;-1:-1:-1;;;;;2393:38:3;;;;2414:6;;2393:38;;2414:6;;2393:38;2441:6;:17;;-1:-1:-1;;;;;;2441:17:3;-1:-1:-1;;;;;2441:17:3;;;;;;;;;;2240:225::o;2877:475:14:-;2949:37;2994:20;3020:17;3040:56;;;;;;;;:::i;:::-;-1:-1:-1;;21:26;;;;;7:41;;87:2;69:12;;;65:26;61:2;54:38;34:5;-1:-1;3102:12:14;3117:24;3126:5;3133:7;3117:8;:24::i;:::-;3102:39;;3214:4;3207;3201:11;3194:4;3188;3184:15;3181:1;3173:46;3165:54;;3248:4;3236:17;3226:2;;3275:1;3272;3265:12;3226:2;-1:-1:-1;3342:4:14;;2877:475;-1:-1:-1;;;;2877:475:14:o;1732:187:2:-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;;;1837:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1837:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:2;;;1732:187::o;607:6579:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;607:6579:21;;;-1:-1:-1;607:6579:21;:::i;:::-;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;",
    "source": "// Factory for Verified cash and bond tokens\r\n// (c) Kallol Borah, 2021\r\n\r\npragma solidity 0.5.7;\r\n\r\nimport \"./interfaces/IFactory.sol\";\r\nimport \"./interfaces/ISecurity.sol\";\r\nimport \"./interfaces/VerifiedClient.sol\";\r\nimport \"@openzeppelin/upgrades/contracts/Initializable.sol\";\r\nimport \"@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol\";\r\nimport \"@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol\";\r\nimport \"@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol\";\r\nimport \"@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract SecuritiesFactory is IFactory, ProxyFactory, Initializable, Ownable{\r\n\r\n    //events\r\n    event securitiesAdded(address indexed security, bytes32 productCategory, address issuer, bytes32 isin, address currency, bool restricted, address issueManager, bytes32[] restrictions, bytes32 country);\r\n\r\n    struct securities{\r\n        address currency;\r\n        bytes32 company;\r\n        bytes32 isin;\r\n        uint256 amount;\r\n        address custodian;\r\n        address dp;\r\n        address token;\r\n        bool    qualified;\r\n    }\r\n\r\n    address[] private issues;\r\n\r\n    //mapping security to holder to securities struct\r\n    mapping(address => mapping(address => securities)) private securitiesHoldings;\r\n\r\n    //mapping security to restricted countries\r\n    mapping(address => bytes32[]) private countries;\r\n\r\n    //mapping security to issuer\r\n    mapping(address => address) private holders;\r\n    mapping(address => address) private securityTokens;\r\n\r\n    address private securityAddress;\r\n\r\n    address private client;\r\n\r\n    function initialize(address _security, address _client) public initializer{\r\n        Ownable.initialize(msg.sender);\r\n        securityAddress = _security;\r\n        client = _client;\r\n    }\r\n\r\n    function getIssues() external view returns(address[] memory){\r\n        return issues;\r\n    }\r\n\r\n    function issueSecurity(address security, bytes32 productCategory, bytes32 company, bytes32 isin, address currency, address issuer, address intermediary, bytes calldata encodedRestrictions, bytes32 country, bool qualified) \r\n                            external {  \r\n        require(issuer==msg.sender, \"Unauthorized issuer of security.\");\r\n        (bytes32[] memory restrictions) = abi.decode(encodedRestrictions, (bytes32[]));\r\n        if(security==address(0x0)){ //if new security             \r\n            bytes memory _payload = abi.encodeWithSignature(\"initialize(bytes32,bytes32,address,address,address,address)\", company, isin, address(this), issuer, client, currency);\r\n            // Deploy proxy\r\n            address _securityToken = deployMinimal(securityAddress, _payload);\r\n\r\n            securitiesHoldings[_securityToken][issuer].isin= isin;\r\n            securitiesHoldings[_securityToken][issuer].company = company;\r\n            securitiesHoldings[_securityToken][issuer].currency= currency;\r\n            securitiesHoldings[_securityToken][issuer].token = _securityToken;\r\n            securitiesHoldings[_securityToken][issuer].dp = intermediary;\r\n            securitiesHoldings[_securityToken][issuer].qualified = qualified;\r\n        \r\n            holders[_securityToken] = issuer;   \r\n            securityTokens[_securityToken] = security;\r\n            issues.push(_securityToken);\r\n        \r\n            emit securitiesAdded(_securityToken, productCategory, issuer, isin, currency, qualified, intermediary, restrictions, country);\r\n        }\r\n        else{ //if existing security\r\n            securitiesHoldings[security][issuer].isin= isin;\r\n            securitiesHoldings[security][issuer].company = company;\r\n            securitiesHoldings[security][issuer].currency= currency;\r\n            securitiesHoldings[security][issuer].token = security;\r\n            securitiesHoldings[security][issuer].dp = intermediary;\r\n            securitiesHoldings[security][issuer].qualified = qualified;\r\n        \r\n            holders[security] = issuer;   \r\n            securityTokens[security] = security;\r\n            issues.push(security);\r\n            \r\n            emit securitiesAdded(security, productCategory, issuer, isin, currency, qualified, intermediary, restrictions, country);\r\n        }\r\n    }\r\n\r\n    function getHolder(address _securityToken) external view returns(address){\r\n        return holders[_securityToken];\r\n    }\r\n\r\n    function getSecurity(address _securityToken) external view returns(address){\r\n        return securityTokens[_securityToken];\r\n    }\r\n\r\n    function getSecurityToken(address _securityToken, address _issuer) external view returns(address, bytes32, bytes32, address,bool){\r\n        return (securitiesHoldings[_securityToken][_issuer].token, \r\n                securitiesHoldings[_securityToken][_issuer].isin,\r\n                securitiesHoldings[_securityToken][_issuer].company,\r\n                securitiesHoldings[_securityToken][_issuer].currency,\r\n                securitiesHoldings[_securityToken][_issuer].qualified\r\n                );\r\n    }\r\n    \r\n    function addBalance(address security, address transferor, address transferee, uint256 amount) external {\r\n        require(holders[security]==msg.sender, \"Unauthorized access\");\r\n\r\n        if(transferor!=address(0x0)){\r\n            securitiesHoldings[security][transferee].amount= SafeMath.add(securitiesHoldings[security][transferee].amount, amount);\r\n            securitiesHoldings[security][transferor].amount= SafeMath.sub(securitiesHoldings[security][transferor].amount, amount);\r\n            ISecurity(securitiesHoldings[security][holders[security]].token).transferToken(transferor, transferee, amount);\r\n        } else {\r\n            securitiesHoldings[security][transferee].amount= amount;\r\n            ISecurity(securitiesHoldings[security][holders[security]].token).mintToken(transferee, amount);\r\n        }\r\n    }\r\n\r\n    function checkProduct(address issue) external view returns(bool){\r\n        if(securityTokens[issue]!=address(0x0) || holders[issue]!=address(0x0))\r\n            return true;\r\n        else\r\n            return false;\r\n    }\r\n\r\n    function setCustodian(address _securityToken, address _issuer, address _custodian) external {\r\n        require(msg.sender==securitiesHoldings[_securityToken][holders[_securityToken]].dp, \"Incorrect custodian set up\");\r\n        (bytes32 role, ,) = VerifiedClient(client).getRole(_custodian);\r\n        require(role==\"Custodian\", \"Invalid custodian\");\r\n        securitiesHoldings[_securityToken][_issuer].custodian = _custodian;\r\n    }\r\n\r\n    function getCustodian(address _securityToken, address _issuer) external view returns(address){        \r\n        return securitiesHoldings[_securityToken][_issuer].custodian;\r\n    }\r\n\r\n    function restrictCountry(address _security, bytes32[] calldata _countries) external{\r\n        countries[_security] = _countries;\r\n    }\r\n\r\n    function getRestrictedCountries(address _security) external view returns(bytes32[] memory){\r\n        return countries[_security];\r\n    }\r\n\r\n    function getDP(address _securityToken) external view returns(address){\r\n        return securitiesHoldings[_securityToken][holders[_securityToken]].dp;\r\n    }\r\n    \r\n}",
    "sourcePath": "D:\\Code\\verified-securities\\contracts\\SecuritiesFactory.sol",
    "ast": {
        "absolutePath": "project:/contracts/SecuritiesFactory.sol",
        "exportedSymbols": {
            "SecuritiesFactory": [
                4561
            ]
        },
        "id": 4562,
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 3884,
                "literals": [
                    "solidity",
                    "0.5",
                    ".7"
                ],
                "nodeType": "PragmaDirective",
                "src": "75:22:21"
            },
            {
                "absolutePath": "project:/contracts/interfaces/IFactory.sol",
                "file": "./interfaces/IFactory.sol",
                "id": 3885,
                "nodeType": "ImportDirective",
                "scope": 4562,
                "sourceUnit": 6629,
                "src": "101:35:21",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ISecurity.sol",
                "file": "./interfaces/ISecurity.sol",
                "id": 3886,
                "nodeType": "ImportDirective",
                "scope": 4562,
                "sourceUnit": 6692,
                "src": "138:36:21",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/VerifiedClient.sol",
                "file": "./interfaces/VerifiedClient.sol",
                "id": 3887,
                "nodeType": "ImportDirective",
                "scope": 4562,
                "sourceUnit": 6874,
                "src": "176:41:21",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/upgrades/contracts/Initializable.sol",
                "file": "@openzeppelin/upgrades/contracts/Initializable.sol",
                "id": 3888,
                "nodeType": "ImportDirective",
                "scope": 4562,
                "sourceUnit": 1043,
                "src": "219:60:21",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol",
                "file": "@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol",
                "id": 3889,
                "nodeType": "ImportDirective",
                "scope": 4562,
                "sourceUnit": 1789,
                "src": "281:74:21",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol",
                "file": "@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol",
                "id": 3890,
                "nodeType": "ImportDirective",
                "scope": 4562,
                "sourceUnit": 286,
                "src": "357:78:21",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                "file": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                "id": 3891,
                "nodeType": "ImportDirective",
                "scope": 4562,
                "sourceUnit": 410,
                "src": "437:82:21",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/ERC20.sol",
                "file": "@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/ERC20.sol",
                "id": 3892,
                "nodeType": "ImportDirective",
                "scope": 4562,
                "sourceUnit": 822,
                "src": "521:82:21",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "baseContracts": [
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 3893,
                            "name": "IFactory",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 6628,
                            "src": "637:8:21",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IFactory_$6628",
                                "typeString": "contract IFactory"
                            }
                        },
                        "id": 3894,
                        "nodeType": "InheritanceSpecifier",
                        "src": "637:8:21"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 3895,
                            "name": "ProxyFactory",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1788,
                            "src": "647:12:21",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ProxyFactory_$1788",
                                "typeString": "contract ProxyFactory"
                            }
                        },
                        "id": 3896,
                        "nodeType": "InheritanceSpecifier",
                        "src": "647:12:21"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 3897,
                            "name": "Initializable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1042,
                            "src": "661:13:21",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Initializable_$1042",
                                "typeString": "contract Initializable"
                            }
                        },
                        "id": 3898,
                        "nodeType": "InheritanceSpecifier",
                        "src": "661:13:21"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 3899,
                            "name": "Ownable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 409,
                            "src": "676:7:21",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Ownable_$409",
                                "typeString": "contract Ownable"
                            }
                        },
                        "id": 3900,
                        "nodeType": "InheritanceSpecifier",
                        "src": "676:7:21"
                    }
                ],
                "contractDependencies": [
                    29,
                    409,
                    1042,
                    1788,
                    6628
                ],
                "contractKind": "contract",
                "documentation": null,
                "fullyImplemented": true,
                "id": 4561,
                "linearizedBaseContracts": [
                    4561,
                    409,
                    29,
                    1042,
                    1788,
                    6628
                ],
                "name": "SecuritiesFactory",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 3921,
                        "name": "securitiesAdded",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 3920,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3902,
                                    "indexed": true,
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3921,
                                    "src": "728:24:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3901,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "728:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3904,
                                    "indexed": false,
                                    "name": "productCategory",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3921,
                                    "src": "754:23:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3903,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "754:7:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3906,
                                    "indexed": false,
                                    "name": "issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3921,
                                    "src": "779:14:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3905,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "779:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3908,
                                    "indexed": false,
                                    "name": "isin",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3921,
                                    "src": "795:12:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3907,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "795:7:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3910,
                                    "indexed": false,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3921,
                                    "src": "809:16:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3909,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "809:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3912,
                                    "indexed": false,
                                    "name": "restricted",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3921,
                                    "src": "827:15:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 3911,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "827:4:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3914,
                                    "indexed": false,
                                    "name": "issueManager",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3921,
                                    "src": "844:20:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3913,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "844:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3917,
                                    "indexed": false,
                                    "name": "restrictions",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3921,
                                    "src": "866:22:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                        "typeString": "bytes32[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 3915,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "866:7:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "id": 3916,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "866:9:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                            "typeString": "bytes32[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3919,
                                    "indexed": false,
                                    "name": "country",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3921,
                                    "src": "890:15:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3918,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "890:7:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "727:179:21"
                        },
                        "src": "706:201:21"
                    },
                    {
                        "canonicalName": "SecuritiesFactory.securities",
                        "id": 3938,
                        "members": [
                            {
                                "constant": false,
                                "id": 3923,
                                "name": "currency",
                                "nodeType": "VariableDeclaration",
                                "scope": 3938,
                                "src": "943:16:21",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                },
                                "typeName": {
                                    "id": 3922,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "943:7:21",
                                    "stateMutability": "nonpayable",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "value": null,
                                "visibility": "internal"
                            },
                            {
                                "constant": false,
                                "id": 3925,
                                "name": "company",
                                "nodeType": "VariableDeclaration",
                                "scope": 3938,
                                "src": "970:15:21",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                },
                                "typeName": {
                                    "id": 3924,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "970:7:21",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    }
                                },
                                "value": null,
                                "visibility": "internal"
                            },
                            {
                                "constant": false,
                                "id": 3927,
                                "name": "isin",
                                "nodeType": "VariableDeclaration",
                                "scope": 3938,
                                "src": "996:12:21",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                },
                                "typeName": {
                                    "id": 3926,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "996:7:21",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    }
                                },
                                "value": null,
                                "visibility": "internal"
                            },
                            {
                                "constant": false,
                                "id": 3929,
                                "name": "amount",
                                "nodeType": "VariableDeclaration",
                                "scope": 3938,
                                "src": "1019:14:21",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                },
                                "typeName": {
                                    "id": 3928,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1019:7:21",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    }
                                },
                                "value": null,
                                "visibility": "internal"
                            },
                            {
                                "constant": false,
                                "id": 3931,
                                "name": "custodian",
                                "nodeType": "VariableDeclaration",
                                "scope": 3938,
                                "src": "1044:17:21",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                },
                                "typeName": {
                                    "id": 3930,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1044:7:21",
                                    "stateMutability": "nonpayable",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "value": null,
                                "visibility": "internal"
                            },
                            {
                                "constant": false,
                                "id": 3933,
                                "name": "dp",
                                "nodeType": "VariableDeclaration",
                                "scope": 3938,
                                "src": "1072:10:21",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                },
                                "typeName": {
                                    "id": 3932,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1072:7:21",
                                    "stateMutability": "nonpayable",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "value": null,
                                "visibility": "internal"
                            },
                            {
                                "constant": false,
                                "id": 3935,
                                "name": "token",
                                "nodeType": "VariableDeclaration",
                                "scope": 3938,
                                "src": "1093:13:21",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                },
                                "typeName": {
                                    "id": 3934,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1093:7:21",
                                    "stateMutability": "nonpayable",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "value": null,
                                "visibility": "internal"
                            },
                            {
                                "constant": false,
                                "id": 3937,
                                "name": "qualified",
                                "nodeType": "VariableDeclaration",
                                "scope": 3938,
                                "src": "1117:17:21",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                },
                                "typeName": {
                                    "id": 3936,
                                    "name": "bool",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1117:4:21",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    }
                                },
                                "value": null,
                                "visibility": "internal"
                            }
                        ],
                        "name": "securities",
                        "nodeType": "StructDefinition",
                        "scope": 4561,
                        "src": "915:227:21",
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 3941,
                        "name": "issues",
                        "nodeType": "VariableDeclaration",
                        "scope": 4561,
                        "src": "1150:24:21",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                            "typeString": "address[]"
                        },
                        "typeName": {
                            "baseType": {
                                "id": 3939,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1150:7:21",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "id": 3940,
                            "length": null,
                            "nodeType": "ArrayTypeName",
                            "src": "1150:9:21",
                            "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 3947,
                        "name": "securitiesHoldings",
                        "nodeType": "VariableDeclaration",
                        "scope": 4561,
                        "src": "1238:77:21",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                            "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities))"
                        },
                        "typeName": {
                            "id": 3946,
                            "keyType": {
                                "id": 3942,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1246:7:21",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1238:50:21",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities))"
                            },
                            "valueType": {
                                "id": 3945,
                                "keyType": {
                                    "id": 3943,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1265:7:21",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "1257:30:21",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                    "typeString": "mapping(address => struct SecuritiesFactory.securities)"
                                },
                                "valueType": {
                                    "contractScope": null,
                                    "id": 3944,
                                    "name": "securities",
                                    "nodeType": "UserDefinedTypeName",
                                    "referencedDeclaration": 3938,
                                    "src": "1276:10:21",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_securities_$3938_storage_ptr",
                                        "typeString": "struct SecuritiesFactory.securities"
                                    }
                                }
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 3952,
                        "name": "countries",
                        "nodeType": "VariableDeclaration",
                        "scope": 4561,
                        "src": "1372:47:21",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$",
                            "typeString": "mapping(address => bytes32[])"
                        },
                        "typeName": {
                            "id": 3951,
                            "keyType": {
                                "id": 3948,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1380:7:21",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1372:29:21",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$",
                                "typeString": "mapping(address => bytes32[])"
                            },
                            "valueType": {
                                "baseType": {
                                    "id": 3949,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1391:7:21",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    }
                                },
                                "id": 3950,
                                "length": null,
                                "nodeType": "ArrayTypeName",
                                "src": "1391:9:21",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                    "typeString": "bytes32[]"
                                }
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 3956,
                        "name": "holders",
                        "nodeType": "VariableDeclaration",
                        "scope": 4561,
                        "src": "1462:43:21",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                            "typeString": "mapping(address => address)"
                        },
                        "typeName": {
                            "id": 3955,
                            "keyType": {
                                "id": 3953,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1470:7:21",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1462:27:21",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                "typeString": "mapping(address => address)"
                            },
                            "valueType": {
                                "id": 3954,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1481:7:21",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 3960,
                        "name": "securityTokens",
                        "nodeType": "VariableDeclaration",
                        "scope": 4561,
                        "src": "1512:50:21",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                            "typeString": "mapping(address => address)"
                        },
                        "typeName": {
                            "id": 3959,
                            "keyType": {
                                "id": 3957,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1520:7:21",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1512:27:21",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                "typeString": "mapping(address => address)"
                            },
                            "valueType": {
                                "id": 3958,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1531:7:21",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 3962,
                        "name": "securityAddress",
                        "nodeType": "VariableDeclaration",
                        "scope": 4561,
                        "src": "1571:31:21",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 3961,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1571:7:21",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 3964,
                        "name": "client",
                        "nodeType": "VariableDeclaration",
                        "scope": 4561,
                        "src": "1611:22:21",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 3963,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1611:7:21",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 3988,
                            "nodeType": "Block",
                            "src": "1716:114:21",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 3976,
                                                    "name": "msg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9424,
                                                    "src": "1746:3:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_message",
                                                        "typeString": "msg"
                                                    }
                                                },
                                                "id": 3977,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sender",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": null,
                                                "src": "1746:10:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 3973,
                                                "name": "Ownable",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 409,
                                                "src": "1727:7:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_Ownable_$409_$",
                                                    "typeString": "type(contract Ownable)"
                                                }
                                            },
                                            "id": 3975,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "initialize",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 320,
                                            "src": "1727:18:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                                                "typeString": "function (address)"
                                            }
                                        },
                                        "id": 3978,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1727:30:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3979,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1727:30:21"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 3982,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 3980,
                                            "name": "securityAddress",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3962,
                                            "src": "1768:15:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 3981,
                                            "name": "_security",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3966,
                                            "src": "1786:9:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "1768:27:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 3983,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1768:27:21"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 3986,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 3984,
                                            "name": "client",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3964,
                                            "src": "1806:6:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 3985,
                                            "name": "_client",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3968,
                                            "src": "1815:7:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "1806:16:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 3987,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1806:16:21"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3989,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 3971,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 3970,
                                    "name": "initializer",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1017,
                                    "src": "1705:11:21",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "1705:11:21"
                            }
                        ],
                        "name": "initialize",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3969,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3966,
                                    "name": "_security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3989,
                                    "src": "1662:17:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3965,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1662:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3968,
                                    "name": "_client",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3989,
                                    "src": "1681:15:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3967,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1681:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1661:36:21"
                        },
                        "returnParameters": {
                            "id": 3972,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "1716:0:21"
                        },
                        "scope": 4561,
                        "src": "1642:188:21",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 3997,
                            "nodeType": "Block",
                            "src": "1898:32:21",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 3995,
                                        "name": "issues",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3941,
                                        "src": "1916:6:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                            "typeString": "address[] storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 3994,
                                    "id": 3996,
                                    "nodeType": "Return",
                                    "src": "1909:13:21"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3998,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getIssues",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3990,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "1856:2:21"
                        },
                        "returnParameters": {
                            "id": 3994,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3993,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3998,
                                    "src": "1881:16:21",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                        "typeString": "address[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 3991,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "1881:7:21",
                                            "stateMutability": "nonpayable",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "id": 3992,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "1881:9:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                            "typeString": "address[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1880:18:21"
                        },
                        "scope": 4561,
                        "src": "1838:92:21",
                        "stateMutability": "view",
                        "superFunction": 6572,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4239,
                            "nodeType": "Block",
                            "src": "2199:2053:21",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 4025,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4022,
                                                    "name": "issuer",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4010,
                                                    "src": "2220:6:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 4023,
                                                        "name": "msg",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9424,
                                                        "src": "2228:3:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_message",
                                                            "typeString": "msg"
                                                        }
                                                    },
                                                    "id": 4024,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sender",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "2228:10:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                },
                                                "src": "2220:18:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "556e617574686f72697a656420697373756572206f662073656375726974792e",
                                                "id": 4026,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "2240:34:21",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_8448e212d8897989d8a59a8fd78342ae018821c3b1804c908db20fb41cc02509",
                                                    "typeString": "literal_string \"Unauthorized issuer of security.\""
                                                },
                                                "value": "Unauthorized issuer of security."
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_8448e212d8897989d8a59a8fd78342ae018821c3b1804c908db20fb41cc02509",
                                                    "typeString": "literal_string \"Unauthorized issuer of security.\""
                                                }
                                            ],
                                            "id": 4021,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "2212:7:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 4027,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2212:63:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4028,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2212:63:21"
                                },
                                {
                                    "assignments": [
                                        4032
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 4032,
                                            "name": "restrictions",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 4239,
                                            "src": "2287:29:21",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                                "typeString": "bytes32[]"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 4030,
                                                    "name": "bytes32",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "2287:7:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "id": 4031,
                                                "length": null,
                                                "nodeType": "ArrayTypeName",
                                                "src": "2287:9:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                                    "typeString": "bytes32[]"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 4040,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4035,
                                                "name": "encodedRestrictions",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4014,
                                                "src": "2331:19:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                    "typeString": "bytes calldata"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "components": [
                                                    {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4036,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "2353:7:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_bytes32_$",
                                                                "typeString": "type(bytes32)"
                                                            },
                                                            "typeName": "bytes32"
                                                        },
                                                        "id": 4037,
                                                        "indexExpression": null,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "2353:9:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                                            "typeString": "type(bytes32[] memory)"
                                                        }
                                                    }
                                                ],
                                                "id": 4038,
                                                "isConstant": false,
                                                "isInlineArray": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "TupleExpression",
                                                "src": "2352:11:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                                    "typeString": "type(bytes32[] memory)"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                    "typeString": "bytes calldata"
                                                },
                                                {
                                                    "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                                    "typeString": "type(bytes32[] memory)"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 4033,
                                                "name": "abi",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9411,
                                                "src": "2320:3:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_magic_abi",
                                                    "typeString": "abi"
                                                }
                                            },
                                            "id": 4034,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "memberName": "decode",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "2320:10:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                                                "typeString": "function () pure"
                                            }
                                        },
                                        "id": 4039,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2320:44:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                                            "typeString": "bytes32[] memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "2286:78:21"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 4045,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 4041,
                                            "name": "security",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4000,
                                            "src": "2378:8:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "hexValue": "307830",
                                                    "id": 4043,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "2396:3:21",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0x0"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    }
                                                ],
                                                "id": 4042,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "2388:7:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_address_$",
                                                    "typeString": "type(address)"
                                                },
                                                "typeName": "address"
                                            },
                                            "id": 4044,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "2388:12:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address_payable",
                                                "typeString": "address payable"
                                            }
                                        },
                                        "src": "2378:22:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "id": 4237,
                                        "nodeType": "Block",
                                        "src": "3511:734:21",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4160,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4153,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "3549:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4156,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4154,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4000,
                                                                    "src": "3568:8:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "3549:28:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4157,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4155,
                                                                "name": "issuer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4010,
                                                                "src": "3578:6:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "3549:36:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4158,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "isin",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3927,
                                                        "src": "3549:41:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4159,
                                                        "name": "isin",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4006,
                                                        "src": "3592:4:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "src": "3549:47:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "id": 4161,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3549:47:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4169,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4162,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "3611:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4165,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4163,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4000,
                                                                    "src": "3630:8:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "3611:28:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4166,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4164,
                                                                "name": "issuer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4010,
                                                                "src": "3640:6:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "3611:36:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4167,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "company",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3925,
                                                        "src": "3611:44:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4168,
                                                        "name": "company",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4004,
                                                        "src": "3658:7:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "src": "3611:54:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "id": 4170,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3611:54:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4178,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4171,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "3680:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4174,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4172,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4000,
                                                                    "src": "3699:8:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "3680:28:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4175,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4173,
                                                                "name": "issuer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4010,
                                                                "src": "3709:6:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "3680:36:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4176,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "currency",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3923,
                                                        "src": "3680:45:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4177,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4008,
                                                        "src": "3727:8:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "3680:55:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 4179,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3680:55:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4187,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4180,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "3750:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4183,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4181,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4000,
                                                                    "src": "3769:8:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "3750:28:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4184,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4182,
                                                                "name": "issuer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4010,
                                                                "src": "3779:6:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "3750:36:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4185,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "token",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3935,
                                                        "src": "3750:42:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4186,
                                                        "name": "security",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4000,
                                                        "src": "3795:8:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "3750:53:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 4188,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3750:53:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4196,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4189,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "3818:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4192,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4190,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4000,
                                                                    "src": "3837:8:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "3818:28:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4193,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4191,
                                                                "name": "issuer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4010,
                                                                "src": "3847:6:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "3818:36:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4194,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "dp",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3933,
                                                        "src": "3818:39:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4195,
                                                        "name": "intermediary",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4012,
                                                        "src": "3860:12:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "3818:54:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 4197,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3818:54:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4205,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4198,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "3887:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4201,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4199,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4000,
                                                                    "src": "3906:8:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "3887:28:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4202,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4200,
                                                                "name": "issuer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4010,
                                                                "src": "3916:6:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "3887:36:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4203,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "qualified",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3937,
                                                        "src": "3887:46:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4204,
                                                        "name": "qualified",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4018,
                                                        "src": "3936:9:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "src": "3887:58:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "id": 4206,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3887:58:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4211,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4207,
                                                            "name": "holders",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3956,
                                                            "src": "3970:7:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                                                "typeString": "mapping(address => address)"
                                                            }
                                                        },
                                                        "id": 4209,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4208,
                                                            "name": "security",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4000,
                                                            "src": "3978:8:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "3970:17:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4210,
                                                        "name": "issuer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4010,
                                                        "src": "3990:6:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "3970:26:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 4212,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3970:26:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4217,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4213,
                                                            "name": "securityTokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3960,
                                                            "src": "4014:14:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                                                "typeString": "mapping(address => address)"
                                                            }
                                                        },
                                                        "id": 4215,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4214,
                                                            "name": "security",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4000,
                                                            "src": "4029:8:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "4014:24:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4216,
                                                        "name": "security",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4000,
                                                        "src": "4041:8:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "4014:35:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 4218,
                                                "nodeType": "ExpressionStatement",
                                                "src": "4014:35:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4222,
                                                            "name": "security",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4000,
                                                            "src": "4076:8:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 4219,
                                                            "name": "issues",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3941,
                                                            "src": "4064:6:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 4221,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "push",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "4064:11:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                                                            "typeString": "function (address) returns (uint256)"
                                                        }
                                                    },
                                                    "id": 4223,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "4064:21:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 4224,
                                                "nodeType": "ExpressionStatement",
                                                "src": "4064:21:21"
                                            },
                                            {
                                                "eventCall": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4226,
                                                            "name": "security",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4000,
                                                            "src": "4135:8:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4227,
                                                            "name": "productCategory",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4002,
                                                            "src": "4145:15:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4228,
                                                            "name": "issuer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4010,
                                                            "src": "4162:6:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4229,
                                                            "name": "isin",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4006,
                                                            "src": "4170:4:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4230,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4008,
                                                            "src": "4176:8:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4231,
                                                            "name": "qualified",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4018,
                                                            "src": "4186:9:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4232,
                                                            "name": "intermediary",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4012,
                                                            "src": "4197:12:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4233,
                                                            "name": "restrictions",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4032,
                                                            "src": "4211:12:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                                                "typeString": "bytes32[] memory"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4234,
                                                            "name": "country",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4016,
                                                            "src": "4225:7:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                                                "typeString": "bytes32[] memory"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        ],
                                                        "id": 4225,
                                                        "name": "securitiesAdded",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3921,
                                                        "src": "4119:15:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_bytes32_$_t_address_$_t_bool_$_t_address_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                                                            "typeString": "function (address,bytes32,address,bytes32,address,bool,address,bytes32[] memory,bytes32)"
                                                        }
                                                    },
                                                    "id": 4235,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "4119:114:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 4236,
                                                "nodeType": "EmitStatement",
                                                "src": "4114:119:21"
                                            }
                                        ]
                                    },
                                    "id": 4238,
                                    "nodeType": "IfStatement",
                                    "src": "2375:1870:21",
                                    "trueBody": {
                                        "id": 4152,
                                        "nodeType": "Block",
                                        "src": "2401:1096:21",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    4047
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 4047,
                                                        "name": "_payload",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 4152,
                                                        "src": "2447:21:21",
                                                        "stateVariable": false,
                                                        "storageLocation": "memory",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes"
                                                        },
                                                        "typeName": {
                                                            "id": 4046,
                                                            "name": "bytes",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "2447:5:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes_storage_ptr",
                                                                "typeString": "bytes"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 4060,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "696e697469616c697a6528627974657333322c627974657333322c616464726573732c616464726573732c616464726573732c6164647265737329",
                                                            "id": 4050,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "2495:61:21",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_89d29c4c62aed23557cdd6503067fff926c36e4130ad6bce6fa6ed9d62392f96",
                                                                "typeString": "literal_string \"initialize(bytes32,bytes32,address,address,address,address)\""
                                                            },
                                                            "value": "initialize(bytes32,bytes32,address,address,address,address)"
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4051,
                                                            "name": "company",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4004,
                                                            "src": "2558:7:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4052,
                                                            "name": "isin",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4006,
                                                            "src": "2567:4:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 4054,
                                                                    "name": "this",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9498,
                                                                    "src": "2581:4:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_SecuritiesFactory_$4561",
                                                                        "typeString": "contract SecuritiesFactory"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_contract$_SecuritiesFactory_$4561",
                                                                        "typeString": "contract SecuritiesFactory"
                                                                    }
                                                                ],
                                                                "id": 4053,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "2573:7:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                    "typeString": "type(address)"
                                                                },
                                                                "typeName": "address"
                                                            },
                                                            "id": 4055,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "2573:13:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4056,
                                                            "name": "issuer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4010,
                                                            "src": "2588:6:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4057,
                                                            "name": "client",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3964,
                                                            "src": "2596:6:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4058,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4008,
                                                            "src": "2604:8:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_stringliteral_89d29c4c62aed23557cdd6503067fff926c36e4130ad6bce6fa6ed9d62392f96",
                                                                "typeString": "literal_string \"initialize(bytes32,bytes32,address,address,address,address)\""
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 4048,
                                                            "name": "abi",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9411,
                                                            "src": "2471:3:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_magic_abi",
                                                                "typeString": "abi"
                                                            }
                                                        },
                                                        "id": 4049,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "memberName": "encodeWithSignature",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "2471:23:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
                                                            "typeString": "function (string memory) pure returns (bytes memory)"
                                                        }
                                                    },
                                                    "id": 4059,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "2471:142:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes_memory_ptr",
                                                        "typeString": "bytes memory"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "2447:166:21"
                                            },
                                            {
                                                "assignments": [
                                                    4062
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 4062,
                                                        "name": "_securityToken",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 4152,
                                                        "src": "2657:22:21",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 4061,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "2657:7:21",
                                                            "stateMutability": "nonpayable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 4067,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4064,
                                                            "name": "securityAddress",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3962,
                                                            "src": "2696:15:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4065,
                                                            "name": "_payload",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4047,
                                                            "src": "2713:8:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                                "typeString": "bytes memory"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                                "typeString": "bytes memory"
                                                            }
                                                        ],
                                                        "id": 4063,
                                                        "name": "deployMinimal",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1549,
                                                        "src": "2682:13:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_address_$",
                                                            "typeString": "function (address,bytes memory) returns (address)"
                                                        }
                                                    },
                                                    "id": 4066,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "2682:40:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "2657:65:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4075,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4068,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "2739:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4071,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4069,
                                                                    "name": "_securityToken",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4062,
                                                                    "src": "2758:14:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "2739:34:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4072,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4070,
                                                                "name": "issuer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4010,
                                                                "src": "2774:6:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "2739:42:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4073,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "isin",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3927,
                                                        "src": "2739:47:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4074,
                                                        "name": "isin",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4006,
                                                        "src": "2788:4:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "src": "2739:53:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "id": 4076,
                                                "nodeType": "ExpressionStatement",
                                                "src": "2739:53:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4084,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4077,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "2807:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4080,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4078,
                                                                    "name": "_securityToken",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4062,
                                                                    "src": "2826:14:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "2807:34:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4081,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4079,
                                                                "name": "issuer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4010,
                                                                "src": "2842:6:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "2807:42:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4082,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "company",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3925,
                                                        "src": "2807:50:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4083,
                                                        "name": "company",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4004,
                                                        "src": "2860:7:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "src": "2807:60:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "id": 4085,
                                                "nodeType": "ExpressionStatement",
                                                "src": "2807:60:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4093,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4086,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "2882:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4089,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4087,
                                                                    "name": "_securityToken",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4062,
                                                                    "src": "2901:14:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "2882:34:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4090,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4088,
                                                                "name": "issuer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4010,
                                                                "src": "2917:6:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "2882:42:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4091,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "currency",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3923,
                                                        "src": "2882:51:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4092,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4008,
                                                        "src": "2935:8:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "2882:61:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 4094,
                                                "nodeType": "ExpressionStatement",
                                                "src": "2882:61:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4102,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4095,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "2958:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4098,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4096,
                                                                    "name": "_securityToken",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4062,
                                                                    "src": "2977:14:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "2958:34:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4099,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4097,
                                                                "name": "issuer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4010,
                                                                "src": "2993:6:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "2958:42:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4100,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "token",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3935,
                                                        "src": "2958:48:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4101,
                                                        "name": "_securityToken",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4062,
                                                        "src": "3009:14:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "2958:65:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 4103,
                                                "nodeType": "ExpressionStatement",
                                                "src": "2958:65:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4111,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4104,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "3038:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4107,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4105,
                                                                    "name": "_securityToken",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4062,
                                                                    "src": "3057:14:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "3038:34:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4108,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4106,
                                                                "name": "issuer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4010,
                                                                "src": "3073:6:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "3038:42:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4109,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "dp",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3933,
                                                        "src": "3038:45:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4110,
                                                        "name": "intermediary",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4012,
                                                        "src": "3086:12:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "3038:60:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 4112,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3038:60:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4120,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4113,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "3113:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4116,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4114,
                                                                    "name": "_securityToken",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4062,
                                                                    "src": "3132:14:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "3113:34:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4117,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4115,
                                                                "name": "issuer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4010,
                                                                "src": "3148:6:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "3113:42:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4118,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "qualified",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3937,
                                                        "src": "3113:52:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4119,
                                                        "name": "qualified",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4018,
                                                        "src": "3168:9:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "src": "3113:64:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "id": 4121,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3113:64:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4126,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4122,
                                                            "name": "holders",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3956,
                                                            "src": "3202:7:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                                                "typeString": "mapping(address => address)"
                                                            }
                                                        },
                                                        "id": 4124,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4123,
                                                            "name": "_securityToken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4062,
                                                            "src": "3210:14:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "3202:23:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4125,
                                                        "name": "issuer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4010,
                                                        "src": "3228:6:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "3202:32:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 4127,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3202:32:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4132,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4128,
                                                            "name": "securityTokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3960,
                                                            "src": "3252:14:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                                                "typeString": "mapping(address => address)"
                                                            }
                                                        },
                                                        "id": 4130,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4129,
                                                            "name": "_securityToken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4062,
                                                            "src": "3267:14:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "3252:30:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4131,
                                                        "name": "security",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4000,
                                                        "src": "3285:8:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "3252:41:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 4133,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3252:41:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4137,
                                                            "name": "_securityToken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4062,
                                                            "src": "3320:14:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 4134,
                                                            "name": "issues",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3941,
                                                            "src": "3308:6:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 4136,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "push",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "3308:11:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                                                            "typeString": "function (address) returns (uint256)"
                                                        }
                                                    },
                                                    "id": 4138,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3308:27:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 4139,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3308:27:21"
                                            },
                                            {
                                                "eventCall": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4141,
                                                            "name": "_securityToken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4062,
                                                            "src": "3381:14:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4142,
                                                            "name": "productCategory",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4002,
                                                            "src": "3397:15:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4143,
                                                            "name": "issuer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4010,
                                                            "src": "3414:6:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4144,
                                                            "name": "isin",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4006,
                                                            "src": "3422:4:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4145,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4008,
                                                            "src": "3428:8:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4146,
                                                            "name": "qualified",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4018,
                                                            "src": "3438:9:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4147,
                                                            "name": "intermediary",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4012,
                                                            "src": "3449:12:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4148,
                                                            "name": "restrictions",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4032,
                                                            "src": "3463:12:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                                                "typeString": "bytes32[] memory"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4149,
                                                            "name": "country",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4016,
                                                            "src": "3477:7:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                                                "typeString": "bytes32[] memory"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        ],
                                                        "id": 4140,
                                                        "name": "securitiesAdded",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3921,
                                                        "src": "3365:15:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_bytes32_$_t_address_$_t_bool_$_t_address_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                                                            "typeString": "function (address,bytes32,address,bytes32,address,bool,address,bytes32[] memory,bytes32)"
                                                        }
                                                    },
                                                    "id": 4150,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3365:120:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 4151,
                                                "nodeType": "EmitStatement",
                                                "src": "3360:125:21"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4240,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "issueSecurity",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4019,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4000,
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4240,
                                    "src": "1961:16:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3999,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1961:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4002,
                                    "name": "productCategory",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4240,
                                    "src": "1979:23:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 4001,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1979:7:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4004,
                                    "name": "company",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4240,
                                    "src": "2004:15:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 4003,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2004:7:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4006,
                                    "name": "isin",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4240,
                                    "src": "2021:12:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 4005,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2021:7:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4008,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4240,
                                    "src": "2035:16:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4007,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2035:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4010,
                                    "name": "issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4240,
                                    "src": "2053:14:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4009,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2053:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4012,
                                    "name": "intermediary",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4240,
                                    "src": "2069:20:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4011,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2069:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4014,
                                    "name": "encodedRestrictions",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4240,
                                    "src": "2091:34:21",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_calldata_ptr",
                                        "typeString": "bytes"
                                    },
                                    "typeName": {
                                        "id": 4013,
                                        "name": "bytes",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2091:5:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_storage_ptr",
                                            "typeString": "bytes"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4016,
                                    "name": "country",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4240,
                                    "src": "2127:15:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 4015,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2127:7:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4018,
                                    "name": "qualified",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4240,
                                    "src": "2144:14:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 4017,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2144:4:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1960:199:21"
                        },
                        "returnParameters": {
                            "id": 4020,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "2199:0:21"
                        },
                        "scope": 4561,
                        "src": "1938:2314:21",
                        "stateMutability": "nonpayable",
                        "superFunction": 6531,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4251,
                            "nodeType": "Block",
                            "src": "4333:49:21",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 4247,
                                            "name": "holders",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3956,
                                            "src": "4351:7:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                                "typeString": "mapping(address => address)"
                                            }
                                        },
                                        "id": 4249,
                                        "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 4248,
                                            "name": "_securityToken",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4242,
                                            "src": "4359:14:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "4351:23:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "functionReturnParameters": 4246,
                                    "id": 4250,
                                    "nodeType": "Return",
                                    "src": "4344:30:21"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4252,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getHolder",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4243,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4242,
                                    "name": "_securityToken",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4252,
                                    "src": "4279:22:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4241,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4279:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4278:24:21"
                        },
                        "returnParameters": {
                            "id": 4246,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4245,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4252,
                                    "src": "4325:7:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4244,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4325:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4324:9:21"
                        },
                        "scope": 4561,
                        "src": "4260:122:21",
                        "stateMutability": "view",
                        "superFunction": 6579,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4263,
                            "nodeType": "Block",
                            "src": "4465:56:21",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 4259,
                                            "name": "securityTokens",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3960,
                                            "src": "4483:14:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                                "typeString": "mapping(address => address)"
                                            }
                                        },
                                        "id": 4261,
                                        "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 4260,
                                            "name": "_securityToken",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4254,
                                            "src": "4498:14:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "4483:30:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "functionReturnParameters": 4258,
                                    "id": 4262,
                                    "nodeType": "Return",
                                    "src": "4476:37:21"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4264,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getSecurity",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4255,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4254,
                                    "name": "_securityToken",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4264,
                                    "src": "4411:22:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4253,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4411:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4410:24:21"
                        },
                        "returnParameters": {
                            "id": 4258,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4257,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4264,
                                    "src": "4457:7:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4256,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4457:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4456:9:21"
                        },
                        "scope": 4561,
                        "src": "4390:131:21",
                        "stateMutability": "view",
                        "superFunction": 6586,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4313,
                            "nodeType": "Block",
                            "src": "4658:376:21",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "components": [
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4281,
                                                            "name": "securitiesHoldings",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3947,
                                                            "src": "4677:18:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                            }
                                                        },
                                                        "id": 4283,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4282,
                                                            "name": "_securityToken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4266,
                                                            "src": "4696:14:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "4677:34:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                            "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                        }
                                                    },
                                                    "id": 4285,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4284,
                                                        "name": "_issuer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4268,
                                                        "src": "4712:7:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "4677:43:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                        "typeString": "struct SecuritiesFactory.securities storage ref"
                                                    }
                                                },
                                                "id": 4286,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "token",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 3935,
                                                "src": "4677:49:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4287,
                                                            "name": "securitiesHoldings",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3947,
                                                            "src": "4746:18:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                            }
                                                        },
                                                        "id": 4289,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4288,
                                                            "name": "_securityToken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4266,
                                                            "src": "4765:14:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "4746:34:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                            "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                        }
                                                    },
                                                    "id": 4291,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4290,
                                                        "name": "_issuer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4268,
                                                        "src": "4781:7:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "4746:43:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                        "typeString": "struct SecuritiesFactory.securities storage ref"
                                                    }
                                                },
                                                "id": 4292,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "isin",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 3927,
                                                "src": "4746:48:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4293,
                                                            "name": "securitiesHoldings",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3947,
                                                            "src": "4813:18:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                            }
                                                        },
                                                        "id": 4295,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4294,
                                                            "name": "_securityToken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4266,
                                                            "src": "4832:14:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "4813:34:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                            "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                        }
                                                    },
                                                    "id": 4297,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4296,
                                                        "name": "_issuer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4268,
                                                        "src": "4848:7:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "4813:43:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                        "typeString": "struct SecuritiesFactory.securities storage ref"
                                                    }
                                                },
                                                "id": 4298,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "company",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 3925,
                                                "src": "4813:51:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4299,
                                                            "name": "securitiesHoldings",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3947,
                                                            "src": "4883:18:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                            }
                                                        },
                                                        "id": 4301,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4300,
                                                            "name": "_securityToken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4266,
                                                            "src": "4902:14:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "4883:34:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                            "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                        }
                                                    },
                                                    "id": 4303,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4302,
                                                        "name": "_issuer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4268,
                                                        "src": "4918:7:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "4883:43:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                        "typeString": "struct SecuritiesFactory.securities storage ref"
                                                    }
                                                },
                                                "id": 4304,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "currency",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 3923,
                                                "src": "4883:52:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4305,
                                                            "name": "securitiesHoldings",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3947,
                                                            "src": "4954:18:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                            }
                                                        },
                                                        "id": 4307,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4306,
                                                            "name": "_securityToken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4266,
                                                            "src": "4973:14:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "4954:34:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                            "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                        }
                                                    },
                                                    "id": 4309,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4308,
                                                        "name": "_issuer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4268,
                                                        "src": "4989:7:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "4954:43:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                        "typeString": "struct SecuritiesFactory.securities storage ref"
                                                    }
                                                },
                                                "id": 4310,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "qualified",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 3937,
                                                "src": "4954:53:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "id": 4311,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "4676:350:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_address_$_t_bytes32_$_t_bytes32_$_t_address_$_t_bool_$",
                                            "typeString": "tuple(address,bytes32,bytes32,address,bool)"
                                        }
                                    },
                                    "functionReturnParameters": 4280,
                                    "id": 4312,
                                    "nodeType": "Return",
                                    "src": "4669:357:21"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4314,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getSecurityToken",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4269,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4266,
                                    "name": "_securityToken",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4314,
                                    "src": "4555:22:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4265,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4555:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4268,
                                    "name": "_issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4314,
                                    "src": "4579:15:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4267,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4579:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4554:41:21"
                        },
                        "returnParameters": {
                            "id": 4280,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4271,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4314,
                                    "src": "4618:7:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4270,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4618:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4273,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4314,
                                    "src": "4627:7:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 4272,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4627:7:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4275,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4314,
                                    "src": "4636:7:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 4274,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4636:7:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4277,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4314,
                                    "src": "4645:7:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4276,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4645:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4279,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4314,
                                    "src": "4653:4:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 4278,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4653:4:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4617:41:21"
                        },
                        "scope": 4561,
                        "src": "4529:505:21",
                        "stateMutability": "view",
                        "superFunction": 6548,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4419,
                            "nodeType": "Block",
                            "src": "5149:720:21",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 4331,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4326,
                                                        "name": "holders",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3956,
                                                        "src": "5168:7:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                                            "typeString": "mapping(address => address)"
                                                        }
                                                    },
                                                    "id": 4328,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4327,
                                                        "name": "security",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4316,
                                                        "src": "5176:8:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "5168:17:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 4329,
                                                        "name": "msg",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9424,
                                                        "src": "5187:3:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_message",
                                                            "typeString": "msg"
                                                        }
                                                    },
                                                    "id": 4330,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sender",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "5187:10:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                },
                                                "src": "5168:29:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "556e617574686f72697a656420616363657373",
                                                "id": 4332,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5199:21:21",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_b89edf027d3d1129b9f2c8dcd2ba89ffc6487f04ca050032214e13175a19a74a",
                                                    "typeString": "literal_string \"Unauthorized access\""
                                                },
                                                "value": "Unauthorized access"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_b89edf027d3d1129b9f2c8dcd2ba89ffc6487f04ca050032214e13175a19a74a",
                                                    "typeString": "literal_string \"Unauthorized access\""
                                                }
                                            ],
                                            "id": 4325,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "5160:7:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 4333,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5160:61:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4334,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5160:61:21"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 4339,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 4335,
                                            "name": "transferor",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4318,
                                            "src": "5237:10:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "!=",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "hexValue": "307830",
                                                    "id": 4337,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "5257:3:21",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0x0"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    }
                                                ],
                                                "id": 4336,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "5249:7:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_address_$",
                                                    "typeString": "type(address)"
                                                },
                                                "typeName": "address"
                                            },
                                            "id": 4338,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "5249:12:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address_payable",
                                                "typeString": "address payable"
                                            }
                                        },
                                        "src": "5237:24:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "id": 4417,
                                        "nodeType": "Block",
                                        "src": "5671:191:21",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4400,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4393,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "5686:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4396,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4394,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4316,
                                                                    "src": "5705:8:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "5686:28:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4397,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4395,
                                                                "name": "transferee",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4320,
                                                                "src": "5715:10:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "5686:40:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4398,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "amount",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3929,
                                                        "src": "5686:47:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 4399,
                                                        "name": "amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4322,
                                                        "src": "5735:6:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "5686:55:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 4401,
                                                "nodeType": "ExpressionStatement",
                                                "src": "5686:55:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4413,
                                                            "name": "transferee",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4320,
                                                            "src": "5831:10:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4414,
                                                            "name": "amount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4322,
                                                            "src": "5843:6:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 4403,
                                                                                "name": "securitiesHoldings",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 3947,
                                                                                "src": "5766:18:21",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                                    "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                                }
                                                                            },
                                                                            "id": 4405,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 4404,
                                                                                "name": "security",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 4316,
                                                                                "src": "5785:8:21",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "5766:28:21",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                                "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 4409,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 4406,
                                                                                "name": "holders",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 3956,
                                                                                "src": "5795:7:21",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                                                                    "typeString": "mapping(address => address)"
                                                                                }
                                                                            },
                                                                            "id": 4408,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 4407,
                                                                                "name": "security",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 4316,
                                                                                "src": "5803:8:21",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "5795:17:21",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "5766:47:21",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                            "typeString": "struct SecuritiesFactory.securities storage ref"
                                                                        }
                                                                    },
                                                                    "id": 4410,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "token",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 3935,
                                                                    "src": "5766:53:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 4402,
                                                                "name": "ISecurity",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6691,
                                                                "src": "5756:9:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_ISecurity_$6691_$",
                                                                    "typeString": "type(contract ISecurity)"
                                                                }
                                                            },
                                                            "id": 4411,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "5756:64:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ISecurity_$6691",
                                                                "typeString": "contract ISecurity"
                                                            }
                                                        },
                                                        "id": 4412,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "mintToken",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 6671,
                                                        "src": "5756:74:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                            "typeString": "function (address,uint256) external"
                                                        }
                                                    },
                                                    "id": 4415,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "5756:94:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 4416,
                                                "nodeType": "ExpressionStatement",
                                                "src": "5756:94:21"
                                            }
                                        ]
                                    },
                                    "id": 4418,
                                    "nodeType": "IfStatement",
                                    "src": "5234:628:21",
                                    "trueBody": {
                                        "id": 4392,
                                        "nodeType": "Block",
                                        "src": "5262:403:21",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4356,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4340,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "5277:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4343,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4341,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4316,
                                                                    "src": "5296:8:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "5277:28:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4344,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4342,
                                                                "name": "transferee",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4320,
                                                                "src": "5306:10:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "5277:40:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4345,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "amount",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3929,
                                                        "src": "5277:47:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 4348,
                                                                            "name": "securitiesHoldings",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 3947,
                                                                            "src": "5339:18:21",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                                "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                            }
                                                                        },
                                                                        "id": 4350,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 4349,
                                                                            "name": "security",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 4316,
                                                                            "src": "5358:8:21",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "5339:28:21",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                            "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 4352,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 4351,
                                                                        "name": "transferee",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 4320,
                                                                        "src": "5368:10:21",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "5339:40:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                        "typeString": "struct SecuritiesFactory.securities storage ref"
                                                                    }
                                                                },
                                                                "id": 4353,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "amount",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 3929,
                                                                "src": "5339:47:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 4354,
                                                                "name": "amount",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4322,
                                                                "src": "5388:6:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 4346,
                                                                "name": "SafeMath",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 285,
                                                                "src": "5326:8:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_SafeMath_$285_$",
                                                                    "typeString": "type(library SafeMath)"
                                                                }
                                                            },
                                                            "id": 4347,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "add",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 125,
                                                            "src": "5326:12:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 4355,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "5326:69:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "5277:118:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 4357,
                                                "nodeType": "ExpressionStatement",
                                                "src": "5277:118:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4374,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4358,
                                                                    "name": "securitiesHoldings",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3947,
                                                                    "src": "5410:18:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                    }
                                                                },
                                                                "id": 4361,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 4359,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4316,
                                                                    "src": "5429:8:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "5410:28:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                }
                                                            },
                                                            "id": 4362,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4360,
                                                                "name": "transferor",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4318,
                                                                "src": "5439:10:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "5410:40:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                                            }
                                                        },
                                                        "id": 4363,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "amount",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3929,
                                                        "src": "5410:47:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 4366,
                                                                            "name": "securitiesHoldings",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 3947,
                                                                            "src": "5472:18:21",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                                "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                            }
                                                                        },
                                                                        "id": 4368,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 4367,
                                                                            "name": "security",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 4316,
                                                                            "src": "5491:8:21",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "5472:28:21",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                            "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 4370,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 4369,
                                                                        "name": "transferor",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 4318,
                                                                        "src": "5501:10:21",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "5472:40:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                        "typeString": "struct SecuritiesFactory.securities storage ref"
                                                                    }
                                                                },
                                                                "id": 4371,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "amount",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 3929,
                                                                "src": "5472:47:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 4372,
                                                                "name": "amount",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4322,
                                                                "src": "5521:6:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 4364,
                                                                "name": "SafeMath",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 285,
                                                                "src": "5459:8:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_SafeMath_$285_$",
                                                                    "typeString": "type(library SafeMath)"
                                                                }
                                                            },
                                                            "id": 4365,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "sub",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 141,
                                                            "src": "5459:12:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 4373,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "5459:69:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "5410:118:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 4375,
                                                "nodeType": "ExpressionStatement",
                                                "src": "5410:118:21"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4387,
                                                            "name": "transferor",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4318,
                                                            "src": "5622:10:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4388,
                                                            "name": "transferee",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4320,
                                                            "src": "5634:10:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4389,
                                                            "name": "amount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4322,
                                                            "src": "5646:6:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 4377,
                                                                                "name": "securitiesHoldings",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 3947,
                                                                                "src": "5553:18:21",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                                    "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                                }
                                                                            },
                                                                            "id": 4379,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 4378,
                                                                                "name": "security",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 4316,
                                                                                "src": "5572:8:21",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "5553:28:21",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                                "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 4383,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 4380,
                                                                                "name": "holders",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 3956,
                                                                                "src": "5582:7:21",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                                                                    "typeString": "mapping(address => address)"
                                                                                }
                                                                            },
                                                                            "id": 4382,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 4381,
                                                                                "name": "security",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 4316,
                                                                                "src": "5590:8:21",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "5582:17:21",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "5553:47:21",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                                            "typeString": "struct SecuritiesFactory.securities storage ref"
                                                                        }
                                                                    },
                                                                    "id": 4384,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "token",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 3935,
                                                                    "src": "5553:53:21",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 4376,
                                                                "name": "ISecurity",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6691,
                                                                "src": "5543:9:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_ISecurity_$6691_$",
                                                                    "typeString": "type(contract ISecurity)"
                                                                }
                                                            },
                                                            "id": 4385,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "5543:64:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ISecurity_$6691",
                                                                "typeString": "contract ISecurity"
                                                            }
                                                        },
                                                        "id": 4386,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "transferToken",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 6664,
                                                        "src": "5543:78:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                            "typeString": "function (address,address,uint256) external"
                                                        }
                                                    },
                                                    "id": 4390,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "5543:110:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 4391,
                                                "nodeType": "ExpressionStatement",
                                                "src": "5543:110:21"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4420,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "addBalance",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4323,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4316,
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4420,
                                    "src": "5066:16:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4315,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5066:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4318,
                                    "name": "transferor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4420,
                                    "src": "5084:18:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4317,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5084:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4320,
                                    "name": "transferee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4420,
                                    "src": "5104:18:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4319,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5104:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4322,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4420,
                                    "src": "5124:14:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 4321,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5124:7:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "5065:74:21"
                        },
                        "returnParameters": {
                            "id": 4324,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "5149:0:21"
                        },
                        "scope": 4561,
                        "src": "5046:823:21",
                        "stateMutability": "nonpayable",
                        "superFunction": 6559,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4447,
                            "nodeType": "Block",
                            "src": "5941:156:21",
                            "statements": [
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "id": 4441,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "id": 4433,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4427,
                                                    "name": "securityTokens",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3960,
                                                    "src": "5955:14:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                                        "typeString": "mapping(address => address)"
                                                    }
                                                },
                                                "id": 4429,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4428,
                                                    "name": "issue",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4422,
                                                    "src": "5970:5:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "5955:21:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "!=",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "hexValue": "307830",
                                                        "id": 4431,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "5986:3:21",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0x0"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        }
                                                    ],
                                                    "id": 4430,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "5978:7:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": "address"
                                                },
                                                "id": 4432,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5978:12:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            "src": "5955:35:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "||",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "id": 4440,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4434,
                                                    "name": "holders",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3956,
                                                    "src": "5994:7:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                                        "typeString": "mapping(address => address)"
                                                    }
                                                },
                                                "id": 4436,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4435,
                                                    "name": "issue",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4422,
                                                    "src": "6002:5:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "5994:14:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "!=",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "hexValue": "307830",
                                                        "id": 4438,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "6018:3:21",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0x0"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        }
                                                    ],
                                                    "id": 4437,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "6010:7:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": "address"
                                                },
                                                "id": 4439,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "6010:12:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            "src": "5994:28:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "src": "5955:67:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "hexValue": "66616c7365",
                                            "id": 4444,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "6084:5:21",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "false"
                                        },
                                        "functionReturnParameters": 4426,
                                        "id": 4445,
                                        "nodeType": "Return",
                                        "src": "6077:12:21"
                                    },
                                    "id": 4446,
                                    "nodeType": "IfStatement",
                                    "src": "5952:137:21",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "hexValue": "74727565",
                                            "id": 4442,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "6044:4:21",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "true"
                                        },
                                        "functionReturnParameters": 4426,
                                        "id": 4443,
                                        "nodeType": "Return",
                                        "src": "6037:11:21"
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4448,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "checkProduct",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4423,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4422,
                                    "name": "issue",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4448,
                                    "src": "5899:13:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4421,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5899:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "5898:15:21"
                        },
                        "returnParameters": {
                            "id": 4426,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4425,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4448,
                                    "src": "5936:4:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 4424,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5936:4:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "5935:6:21"
                        },
                        "scope": 4561,
                        "src": "5877:220:21",
                        "stateMutability": "view",
                        "superFunction": 6566,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4497,
                            "nodeType": "Block",
                            "src": "6197:340:21",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 4468,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 4458,
                                                        "name": "msg",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9424,
                                                        "src": "6216:3:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_message",
                                                            "typeString": "msg"
                                                        }
                                                    },
                                                    "id": 4459,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sender",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "6216:10:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4460,
                                                                "name": "securitiesHoldings",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3947,
                                                                "src": "6228:18:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                                    "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                                }
                                                            },
                                                            "id": 4462,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4461,
                                                                "name": "_securityToken",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4450,
                                                                "src": "6247:14:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "6228:34:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                                "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                            }
                                                        },
                                                        "id": 4466,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4463,
                                                                "name": "holders",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3956,
                                                                "src": "6263:7:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                                                    "typeString": "mapping(address => address)"
                                                                }
                                                            },
                                                            "id": 4465,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4464,
                                                                "name": "_securityToken",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4450,
                                                                "src": "6271:14:21",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "6263:23:21",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "6228:59:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                            "typeString": "struct SecuritiesFactory.securities storage ref"
                                                        }
                                                    },
                                                    "id": 4467,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "dp",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 3933,
                                                    "src": "6228:62:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "6216:74:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "496e636f727265637420637573746f6469616e20736574207570",
                                                "id": 4469,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "6292:28:21",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_33b8ee7c3d3c0738e93bbcb47242ae7c5aac1c8d8780e3734d2b4b5a5ae4b96d",
                                                    "typeString": "literal_string \"Incorrect custodian set up\""
                                                },
                                                "value": "Incorrect custodian set up"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_33b8ee7c3d3c0738e93bbcb47242ae7c5aac1c8d8780e3734d2b4b5a5ae4b96d",
                                                    "typeString": "literal_string \"Incorrect custodian set up\""
                                                }
                                            ],
                                            "id": 4457,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "6208:7:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 4470,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6208:113:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4471,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6208:113:21"
                                },
                                {
                                    "assignments": [
                                        4473,
                                        null,
                                        null
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 4473,
                                            "name": "role",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 4497,
                                            "src": "6333:12:21",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": {
                                                "id": 4472,
                                                "name": "bytes32",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "6333:7:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        null,
                                        null
                                    ],
                                    "id": 4480,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4478,
                                                "name": "_custodian",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4454,
                                                "src": "6383:10:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 4475,
                                                        "name": "client",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3964,
                                                        "src": "6367:6:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 4474,
                                                    "name": "VerifiedClient",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6873,
                                                    "src": "6352:14:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_VerifiedClient_$6873_$",
                                                        "typeString": "type(contract VerifiedClient)"
                                                    }
                                                },
                                                "id": 4476,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "6352:22:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_VerifiedClient_$6873",
                                                    "typeString": "contract VerifiedClient"
                                                }
                                            },
                                            "id": 4477,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getRole",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 6731,
                                            "src": "6352:30:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "function (address) view external returns (bytes32,bytes32,bytes32)"
                                            }
                                        },
                                        "id": 4479,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6352:42:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "tuple(bytes32,bytes32,bytes32)"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "6332:62:21"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 4484,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4482,
                                                    "name": "role",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4473,
                                                    "src": "6413:4:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "437573746f6469616e",
                                                    "id": 4483,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "6419:11:21",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_5451fdb1391c16e8771946db3b26e7709a09330c5a2ef89b047712fdb1b5d7ce",
                                                        "typeString": "literal_string \"Custodian\""
                                                    },
                                                    "value": "Custodian"
                                                },
                                                "src": "6413:17:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "496e76616c696420637573746f6469616e",
                                                "id": 4485,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "6432:19:21",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_db5f1471b2771db2e1e51c5d773f906ca4e9ffee0e965657f1af315099b87ddf",
                                                    "typeString": "literal_string \"Invalid custodian\""
                                                },
                                                "value": "Invalid custodian"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_db5f1471b2771db2e1e51c5d773f906ca4e9ffee0e965657f1af315099b87ddf",
                                                    "typeString": "literal_string \"Invalid custodian\""
                                                }
                                            ],
                                            "id": 4481,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "6405:7:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 4486,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6405:47:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4487,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6405:47:21"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4495,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4488,
                                                        "name": "securitiesHoldings",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3947,
                                                        "src": "6463:18:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                            "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                        }
                                                    },
                                                    "id": 4491,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4489,
                                                        "name": "_securityToken",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4450,
                                                        "src": "6482:14:21",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "6463:34:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                        "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                    }
                                                },
                                                "id": 4492,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4490,
                                                    "name": "_issuer",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4452,
                                                    "src": "6498:7:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "6463:43:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                    "typeString": "struct SecuritiesFactory.securities storage ref"
                                                }
                                            },
                                            "id": 4493,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "custodian",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3931,
                                            "src": "6463:53:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 4494,
                                            "name": "_custodian",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4454,
                                            "src": "6519:10:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "6463:66:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 4496,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6463:66:21"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4498,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "setCustodian",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4455,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4450,
                                    "name": "_securityToken",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4498,
                                    "src": "6127:22:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4449,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6127:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4452,
                                    "name": "_issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4498,
                                    "src": "6151:15:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4451,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6151:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4454,
                                    "name": "_custodian",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4498,
                                    "src": "6168:18:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4453,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6168:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6126:61:21"
                        },
                        "returnParameters": {
                            "id": 4456,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "6197:0:21"
                        },
                        "scope": 4561,
                        "src": "6105:432:21",
                        "stateMutability": "nonpayable",
                        "superFunction": 6595,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4514,
                            "nodeType": "Block",
                            "src": "6638:87:21",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4507,
                                                    "name": "securitiesHoldings",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3947,
                                                    "src": "6664:18:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                    }
                                                },
                                                "id": 4509,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4508,
                                                    "name": "_securityToken",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4500,
                                                    "src": "6683:14:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "6664:34:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                }
                                            },
                                            "id": 4511,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 4510,
                                                "name": "_issuer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4502,
                                                "src": "6699:7:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "6664:43:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                            }
                                        },
                                        "id": 4512,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "custodian",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 3931,
                                        "src": "6664:53:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "functionReturnParameters": 4506,
                                    "id": 4513,
                                    "nodeType": "Return",
                                    "src": "6657:60:21"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4515,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getCustodian",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4503,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4500,
                                    "name": "_securityToken",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4515,
                                    "src": "6567:22:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4499,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6567:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4502,
                                    "name": "_issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4515,
                                    "src": "6591:15:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4501,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6591:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6566:41:21"
                        },
                        "returnParameters": {
                            "id": 4506,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4505,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4515,
                                    "src": "6630:7:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4504,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6630:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6629:9:21"
                        },
                        "scope": 4561,
                        "src": "6545:180:21",
                        "stateMutability": "view",
                        "superFunction": 6604,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4529,
                            "nodeType": "Block",
                            "src": "6816:52:21",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4527,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 4523,
                                                "name": "countries",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3952,
                                                "src": "6827:9:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$",
                                                    "typeString": "mapping(address => bytes32[] storage ref)"
                                                }
                                            },
                                            "id": 4525,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 4524,
                                                "name": "_security",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4517,
                                                "src": "6837:9:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "6827:20:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                "typeString": "bytes32[] storage ref"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 4526,
                                            "name": "_countries",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4520,
                                            "src": "6850:10:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                                "typeString": "bytes32[] calldata"
                                            }
                                        },
                                        "src": "6827:33:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                            "typeString": "bytes32[] storage ref"
                                        }
                                    },
                                    "id": 4528,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6827:33:21"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4530,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "restrictCountry",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4521,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4517,
                                    "name": "_security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4530,
                                    "src": "6758:17:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4516,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6758:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4520,
                                    "name": "_countries",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4530,
                                    "src": "6777:29:21",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                        "typeString": "bytes32[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 4518,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "6777:7:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "id": 4519,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "6777:9:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                            "typeString": "bytes32[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6757:50:21"
                        },
                        "returnParameters": {
                            "id": 4522,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "6816:0:21"
                        },
                        "scope": 4561,
                        "src": "6733:135:21",
                        "stateMutability": "nonpayable",
                        "superFunction": 6612,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4542,
                            "nodeType": "Block",
                            "src": "6966:46:21",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 4538,
                                            "name": "countries",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3952,
                                            "src": "6984:9:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$",
                                                "typeString": "mapping(address => bytes32[] storage ref)"
                                            }
                                        },
                                        "id": 4540,
                                        "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 4539,
                                            "name": "_security",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4532,
                                            "src": "6994:9:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "6984:20:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                            "typeString": "bytes32[] storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 4537,
                                    "id": 4541,
                                    "nodeType": "Return",
                                    "src": "6977:27:21"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4543,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getRestrictedCountries",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4533,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4532,
                                    "name": "_security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4543,
                                    "src": "6908:17:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4531,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6908:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6907:19:21"
                        },
                        "returnParameters": {
                            "id": 4537,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4536,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4543,
                                    "src": "6949:16:21",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                        "typeString": "bytes32[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 4534,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "6949:7:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "id": 4535,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "6949:9:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                            "typeString": "bytes32[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6948:18:21"
                        },
                        "scope": 4561,
                        "src": "6876:136:21",
                        "stateMutability": "view",
                        "superFunction": 6620,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4559,
                            "nodeType": "Block",
                            "src": "7089:88:21",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4550,
                                                    "name": "securitiesHoldings",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3947,
                                                    "src": "7107:18:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$_$",
                                                        "typeString": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))"
                                                    }
                                                },
                                                "id": 4552,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4551,
                                                    "name": "_securityToken",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4545,
                                                    "src": "7126:14:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "7107:34:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_securities_$3938_storage_$",
                                                    "typeString": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                }
                                            },
                                            "id": 4556,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4553,
                                                    "name": "holders",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3956,
                                                    "src": "7142:7:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                                        "typeString": "mapping(address => address)"
                                                    }
                                                },
                                                "id": 4555,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4554,
                                                    "name": "_securityToken",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4545,
                                                    "src": "7150:14:21",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "7142:23:21",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "7107:59:21",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_securities_$3938_storage",
                                                "typeString": "struct SecuritiesFactory.securities storage ref"
                                            }
                                        },
                                        "id": 4557,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "dp",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 3933,
                                        "src": "7107:62:21",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "functionReturnParameters": 4549,
                                    "id": 4558,
                                    "nodeType": "Return",
                                    "src": "7100:69:21"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4560,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getDP",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4546,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4545,
                                    "name": "_securityToken",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4560,
                                    "src": "7035:22:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4544,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7035:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7034:24:21"
                        },
                        "returnParameters": {
                            "id": 4549,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4548,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4560,
                                    "src": "7081:7:21",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4547,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7081:7:21",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7080:9:21"
                        },
                        "scope": 4561,
                        "src": "7020:157:21",
                        "stateMutability": "view",
                        "superFunction": 6627,
                        "visibility": "external"
                    }
                ],
                "scope": 4562,
                "src": "607:6579:21"
            }
        ],
        "src": "75:7111:21"
    },
    "legacyAST": {
        "attributes": {
            "absolutePath": "project:/contracts/SecuritiesFactory.sol",
            "exportedSymbols": {
                "SecuritiesFactory": [
                    4561
                ]
            }
        },
        "children": [
            {
                "attributes": {
                    "literals": [
                        "solidity",
                        "0.5",
                        ".7"
                    ]
                },
                "id": 3884,
                "name": "PragmaDirective",
                "src": "75:22:21"
            },
            {
                "attributes": {
                    "SourceUnit": 6629,
                    "absolutePath": "project:/contracts/interfaces/IFactory.sol",
                    "file": "./interfaces/IFactory.sol",
                    "scope": 4562,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3885,
                "name": "ImportDirective",
                "src": "101:35:21"
            },
            {
                "attributes": {
                    "SourceUnit": 6692,
                    "absolutePath": "project:/contracts/interfaces/ISecurity.sol",
                    "file": "./interfaces/ISecurity.sol",
                    "scope": 4562,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3886,
                "name": "ImportDirective",
                "src": "138:36:21"
            },
            {
                "attributes": {
                    "SourceUnit": 6874,
                    "absolutePath": "project:/contracts/interfaces/VerifiedClient.sol",
                    "file": "./interfaces/VerifiedClient.sol",
                    "scope": 4562,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3887,
                "name": "ImportDirective",
                "src": "176:41:21"
            },
            {
                "attributes": {
                    "SourceUnit": 1043,
                    "absolutePath": "@openzeppelin/upgrades/contracts/Initializable.sol",
                    "file": "@openzeppelin/upgrades/contracts/Initializable.sol",
                    "scope": 4562,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3888,
                "name": "ImportDirective",
                "src": "219:60:21"
            },
            {
                "attributes": {
                    "SourceUnit": 1789,
                    "absolutePath": "@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol",
                    "file": "@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol",
                    "scope": 4562,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3889,
                "name": "ImportDirective",
                "src": "281:74:21"
            },
            {
                "attributes": {
                    "SourceUnit": 286,
                    "absolutePath": "@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol",
                    "file": "@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol",
                    "scope": 4562,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3890,
                "name": "ImportDirective",
                "src": "357:78:21"
            },
            {
                "attributes": {
                    "SourceUnit": 410,
                    "absolutePath": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                    "file": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                    "scope": 4562,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3891,
                "name": "ImportDirective",
                "src": "437:82:21"
            },
            {
                "attributes": {
                    "SourceUnit": 822,
                    "absolutePath": "@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/ERC20.sol",
                    "file": "@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/ERC20.sol",
                    "scope": 4562,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 3892,
                "name": "ImportDirective",
                "src": "521:82:21"
            },
            {
                "attributes": {
                    "contractDependencies": [
                        29,
                        409,
                        1042,
                        1788,
                        6628
                    ],
                    "contractKind": "contract",
                    "documentation": null,
                    "fullyImplemented": true,
                    "linearizedBaseContracts": [
                        4561,
                        409,
                        29,
                        1042,
                        1788,
                        6628
                    ],
                    "name": "SecuritiesFactory",
                    "scope": 4562
                },
                "children": [
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "IFactory",
                                    "referencedDeclaration": 6628,
                                    "type": "contract IFactory"
                                },
                                "id": 3893,
                                "name": "UserDefinedTypeName",
                                "src": "637:8:21"
                            }
                        ],
                        "id": 3894,
                        "name": "InheritanceSpecifier",
                        "src": "637:8:21"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ProxyFactory",
                                    "referencedDeclaration": 1788,
                                    "type": "contract ProxyFactory"
                                },
                                "id": 3895,
                                "name": "UserDefinedTypeName",
                                "src": "647:12:21"
                            }
                        ],
                        "id": 3896,
                        "name": "InheritanceSpecifier",
                        "src": "647:12:21"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "Initializable",
                                    "referencedDeclaration": 1042,
                                    "type": "contract Initializable"
                                },
                                "id": 3897,
                                "name": "UserDefinedTypeName",
                                "src": "661:13:21"
                            }
                        ],
                        "id": 3898,
                        "name": "InheritanceSpecifier",
                        "src": "661:13:21"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "Ownable",
                                    "referencedDeclaration": 409,
                                    "type": "contract Ownable"
                                },
                                "id": 3899,
                                "name": "UserDefinedTypeName",
                                "src": "676:7:21"
                            }
                        ],
                        "id": 3900,
                        "name": "InheritanceSpecifier",
                        "src": "676:7:21"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "securitiesAdded"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "security",
                                            "scope": 3921,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3901,
                                                "name": "ElementaryTypeName",
                                                "src": "728:7:21"
                                            }
                                        ],
                                        "id": 3902,
                                        "name": "VariableDeclaration",
                                        "src": "728:24:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "productCategory",
                                            "scope": 3921,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3903,
                                                "name": "ElementaryTypeName",
                                                "src": "754:7:21"
                                            }
                                        ],
                                        "id": 3904,
                                        "name": "VariableDeclaration",
                                        "src": "754:23:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "issuer",
                                            "scope": 3921,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3905,
                                                "name": "ElementaryTypeName",
                                                "src": "779:7:21"
                                            }
                                        ],
                                        "id": 3906,
                                        "name": "VariableDeclaration",
                                        "src": "779:14:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "isin",
                                            "scope": 3921,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3907,
                                                "name": "ElementaryTypeName",
                                                "src": "795:7:21"
                                            }
                                        ],
                                        "id": 3908,
                                        "name": "VariableDeclaration",
                                        "src": "795:12:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "currency",
                                            "scope": 3921,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3909,
                                                "name": "ElementaryTypeName",
                                                "src": "809:7:21"
                                            }
                                        ],
                                        "id": 3910,
                                        "name": "VariableDeclaration",
                                        "src": "809:16:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "restricted",
                                            "scope": 3921,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 3911,
                                                "name": "ElementaryTypeName",
                                                "src": "827:4:21"
                                            }
                                        ],
                                        "id": 3912,
                                        "name": "VariableDeclaration",
                                        "src": "827:15:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "issueManager",
                                            "scope": 3921,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3913,
                                                "name": "ElementaryTypeName",
                                                "src": "844:7:21"
                                            }
                                        ],
                                        "id": 3914,
                                        "name": "VariableDeclaration",
                                        "src": "844:20:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "restrictions",
                                            "scope": 3921,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "bytes32[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 3915,
                                                        "name": "ElementaryTypeName",
                                                        "src": "866:7:21"
                                                    }
                                                ],
                                                "id": 3916,
                                                "name": "ArrayTypeName",
                                                "src": "866:9:21"
                                            }
                                        ],
                                        "id": 3917,
                                        "name": "VariableDeclaration",
                                        "src": "866:22:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "country",
                                            "scope": 3921,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3918,
                                                "name": "ElementaryTypeName",
                                                "src": "890:7:21"
                                            }
                                        ],
                                        "id": 3919,
                                        "name": "VariableDeclaration",
                                        "src": "890:15:21"
                                    }
                                ],
                                "id": 3920,
                                "name": "ParameterList",
                                "src": "727:179:21"
                            }
                        ],
                        "id": 3921,
                        "name": "EventDefinition",
                        "src": "706:201:21"
                    },
                    {
                        "attributes": {
                            "canonicalName": "SecuritiesFactory.securities",
                            "name": "securities",
                            "scope": 4561,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "constant": false,
                                    "name": "currency",
                                    "scope": 3938,
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "type": "address",
                                    "value": null,
                                    "visibility": "internal"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 3922,
                                        "name": "ElementaryTypeName",
                                        "src": "943:7:21"
                                    }
                                ],
                                "id": 3923,
                                "name": "VariableDeclaration",
                                "src": "943:16:21"
                            },
                            {
                                "attributes": {
                                    "constant": false,
                                    "name": "company",
                                    "scope": 3938,
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "type": "bytes32",
                                    "value": null,
                                    "visibility": "internal"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 3924,
                                        "name": "ElementaryTypeName",
                                        "src": "970:7:21"
                                    }
                                ],
                                "id": 3925,
                                "name": "VariableDeclaration",
                                "src": "970:15:21"
                            },
                            {
                                "attributes": {
                                    "constant": false,
                                    "name": "isin",
                                    "scope": 3938,
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "type": "bytes32",
                                    "value": null,
                                    "visibility": "internal"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 3926,
                                        "name": "ElementaryTypeName",
                                        "src": "996:7:21"
                                    }
                                ],
                                "id": 3927,
                                "name": "VariableDeclaration",
                                "src": "996:12:21"
                            },
                            {
                                "attributes": {
                                    "constant": false,
                                    "name": "amount",
                                    "scope": 3938,
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "type": "uint256",
                                    "value": null,
                                    "visibility": "internal"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "uint256",
                                            "type": "uint256"
                                        },
                                        "id": 3928,
                                        "name": "ElementaryTypeName",
                                        "src": "1019:7:21"
                                    }
                                ],
                                "id": 3929,
                                "name": "VariableDeclaration",
                                "src": "1019:14:21"
                            },
                            {
                                "attributes": {
                                    "constant": false,
                                    "name": "custodian",
                                    "scope": 3938,
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "type": "address",
                                    "value": null,
                                    "visibility": "internal"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 3930,
                                        "name": "ElementaryTypeName",
                                        "src": "1044:7:21"
                                    }
                                ],
                                "id": 3931,
                                "name": "VariableDeclaration",
                                "src": "1044:17:21"
                            },
                            {
                                "attributes": {
                                    "constant": false,
                                    "name": "dp",
                                    "scope": 3938,
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "type": "address",
                                    "value": null,
                                    "visibility": "internal"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 3932,
                                        "name": "ElementaryTypeName",
                                        "src": "1072:7:21"
                                    }
                                ],
                                "id": 3933,
                                "name": "VariableDeclaration",
                                "src": "1072:10:21"
                            },
                            {
                                "attributes": {
                                    "constant": false,
                                    "name": "token",
                                    "scope": 3938,
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "type": "address",
                                    "value": null,
                                    "visibility": "internal"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 3934,
                                        "name": "ElementaryTypeName",
                                        "src": "1093:7:21"
                                    }
                                ],
                                "id": 3935,
                                "name": "VariableDeclaration",
                                "src": "1093:13:21"
                            },
                            {
                                "attributes": {
                                    "constant": false,
                                    "name": "qualified",
                                    "scope": 3938,
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "type": "bool",
                                    "value": null,
                                    "visibility": "internal"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bool",
                                            "type": "bool"
                                        },
                                        "id": 3936,
                                        "name": "ElementaryTypeName",
                                        "src": "1117:4:21"
                                    }
                                ],
                                "id": 3937,
                                "name": "VariableDeclaration",
                                "src": "1117:17:21"
                            }
                        ],
                        "id": 3938,
                        "name": "StructDefinition",
                        "src": "915:227:21"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "issues",
                            "scope": 4561,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address[]",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "length": null,
                                    "type": "address[]"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 3939,
                                        "name": "ElementaryTypeName",
                                        "src": "1150:7:21"
                                    }
                                ],
                                "id": 3940,
                                "name": "ArrayTypeName",
                                "src": "1150:9:21"
                            }
                        ],
                        "id": 3941,
                        "name": "VariableDeclaration",
                        "src": "1150:24:21"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "securitiesHoldings",
                            "scope": 4561,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities))",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 3942,
                                        "name": "ElementaryTypeName",
                                        "src": "1246:7:21"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(address => struct SecuritiesFactory.securities)"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "type": "address"
                                                },
                                                "id": 3943,
                                                "name": "ElementaryTypeName",
                                                "src": "1265:7:21"
                                            },
                                            {
                                                "attributes": {
                                                    "contractScope": null,
                                                    "name": "securities",
                                                    "referencedDeclaration": 3938,
                                                    "type": "struct SecuritiesFactory.securities"
                                                },
                                                "id": 3944,
                                                "name": "UserDefinedTypeName",
                                                "src": "1276:10:21"
                                            }
                                        ],
                                        "id": 3945,
                                        "name": "Mapping",
                                        "src": "1257:30:21"
                                    }
                                ],
                                "id": 3946,
                                "name": "Mapping",
                                "src": "1238:50:21"
                            }
                        ],
                        "id": 3947,
                        "name": "VariableDeclaration",
                        "src": "1238:77:21"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "countries",
                            "scope": 4561,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => bytes32[])",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => bytes32[])"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 3948,
                                        "name": "ElementaryTypeName",
                                        "src": "1380:7:21"
                                    },
                                    {
                                        "attributes": {
                                            "length": null,
                                            "type": "bytes32[]"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3949,
                                                "name": "ElementaryTypeName",
                                                "src": "1391:7:21"
                                            }
                                        ],
                                        "id": 3950,
                                        "name": "ArrayTypeName",
                                        "src": "1391:9:21"
                                    }
                                ],
                                "id": 3951,
                                "name": "Mapping",
                                "src": "1372:29:21"
                            }
                        ],
                        "id": 3952,
                        "name": "VariableDeclaration",
                        "src": "1372:47:21"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "holders",
                            "scope": 4561,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => address)",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => address)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 3953,
                                        "name": "ElementaryTypeName",
                                        "src": "1470:7:21"
                                    },
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 3954,
                                        "name": "ElementaryTypeName",
                                        "src": "1481:7:21"
                                    }
                                ],
                                "id": 3955,
                                "name": "Mapping",
                                "src": "1462:27:21"
                            }
                        ],
                        "id": 3956,
                        "name": "VariableDeclaration",
                        "src": "1462:43:21"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "securityTokens",
                            "scope": 4561,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => address)",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => address)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 3957,
                                        "name": "ElementaryTypeName",
                                        "src": "1520:7:21"
                                    },
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 3958,
                                        "name": "ElementaryTypeName",
                                        "src": "1531:7:21"
                                    }
                                ],
                                "id": 3959,
                                "name": "Mapping",
                                "src": "1512:27:21"
                            }
                        ],
                        "id": 3960,
                        "name": "VariableDeclaration",
                        "src": "1512:50:21"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "securityAddress",
                            "scope": 4561,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "address",
                                    "stateMutability": "nonpayable",
                                    "type": "address"
                                },
                                "id": 3961,
                                "name": "ElementaryTypeName",
                                "src": "1571:7:21"
                            }
                        ],
                        "id": 3962,
                        "name": "VariableDeclaration",
                        "src": "1571:31:21"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "client",
                            "scope": 4561,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "address",
                                    "stateMutability": "nonpayable",
                                    "type": "address"
                                },
                                "id": 3963,
                                "name": "ElementaryTypeName",
                                "src": "1611:7:21"
                            }
                        ],
                        "id": 3964,
                        "name": "VariableDeclaration",
                        "src": "1611:22:21"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "initialize",
                            "scope": 4561,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_security",
                                            "scope": 3989,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3965,
                                                "name": "ElementaryTypeName",
                                                "src": "1662:7:21"
                                            }
                                        ],
                                        "id": 3966,
                                        "name": "VariableDeclaration",
                                        "src": "1662:17:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_client",
                                            "scope": 3989,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3967,
                                                "name": "ElementaryTypeName",
                                                "src": "1681:7:21"
                                            }
                                        ],
                                        "id": 3968,
                                        "name": "VariableDeclaration",
                                        "src": "1681:15:21"
                                    }
                                ],
                                "id": 3969,
                                "name": "ParameterList",
                                "src": "1661:36:21"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 3972,
                                "name": "ParameterList",
                                "src": "1716:0:21"
                            },
                            {
                                "attributes": {
                                    "arguments": null
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 1017,
                                            "type": "modifier ()",
                                            "value": "initializer"
                                        },
                                        "id": 3970,
                                        "name": "Identifier",
                                        "src": "1705:11:21"
                                    }
                                ],
                                "id": 3971,
                                "name": "ModifierInvocation",
                                "src": "1705:11:21"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "initialize",
                                                            "referencedDeclaration": 320,
                                                            "type": "function (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 409,
                                                                    "type": "type(contract Ownable)",
                                                                    "value": "Ownable"
                                                                },
                                                                "id": 3973,
                                                                "name": "Identifier",
                                                                "src": "1727:7:21"
                                                            }
                                                        ],
                                                        "id": 3975,
                                                        "name": "MemberAccess",
                                                        "src": "1727:18:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sender",
                                                            "referencedDeclaration": null,
                                                            "type": "address payable"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9424,
                                                                    "type": "msg",
                                                                    "value": "msg"
                                                                },
                                                                "id": 3976,
                                                                "name": "Identifier",
                                                                "src": "1746:3:21"
                                                            }
                                                        ],
                                                        "id": 3977,
                                                        "name": "MemberAccess",
                                                        "src": "1746:10:21"
                                                    }
                                                ],
                                                "id": 3978,
                                                "name": "FunctionCall",
                                                "src": "1727:30:21"
                                            }
                                        ],
                                        "id": 3979,
                                        "name": "ExpressionStatement",
                                        "src": "1727:30:21"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3962,
                                                            "type": "address",
                                                            "value": "securityAddress"
                                                        },
                                                        "id": 3980,
                                                        "name": "Identifier",
                                                        "src": "1768:15:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3966,
                                                            "type": "address",
                                                            "value": "_security"
                                                        },
                                                        "id": 3981,
                                                        "name": "Identifier",
                                                        "src": "1786:9:21"
                                                    }
                                                ],
                                                "id": 3982,
                                                "name": "Assignment",
                                                "src": "1768:27:21"
                                            }
                                        ],
                                        "id": 3983,
                                        "name": "ExpressionStatement",
                                        "src": "1768:27:21"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3964,
                                                            "type": "address",
                                                            "value": "client"
                                                        },
                                                        "id": 3984,
                                                        "name": "Identifier",
                                                        "src": "1806:6:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3968,
                                                            "type": "address",
                                                            "value": "_client"
                                                        },
                                                        "id": 3985,
                                                        "name": "Identifier",
                                                        "src": "1815:7:21"
                                                    }
                                                ],
                                                "id": 3986,
                                                "name": "Assignment",
                                                "src": "1806:16:21"
                                            }
                                        ],
                                        "id": 3987,
                                        "name": "ExpressionStatement",
                                        "src": "1806:16:21"
                                    }
                                ],
                                "id": 3988,
                                "name": "Block",
                                "src": "1716:114:21"
                            }
                        ],
                        "id": 3989,
                        "name": "FunctionDefinition",
                        "src": "1642:188:21"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getIssues",
                            "scope": 4561,
                            "stateMutability": "view",
                            "superFunction": 6572,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 3990,
                                "name": "ParameterList",
                                "src": "1856:2:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3998,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "address[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "address[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 3991,
                                                        "name": "ElementaryTypeName",
                                                        "src": "1881:7:21"
                                                    }
                                                ],
                                                "id": 3992,
                                                "name": "ArrayTypeName",
                                                "src": "1881:9:21"
                                            }
                                        ],
                                        "id": 3993,
                                        "name": "VariableDeclaration",
                                        "src": "1881:16:21"
                                    }
                                ],
                                "id": 3994,
                                "name": "ParameterList",
                                "src": "1880:18:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 3994
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 3941,
                                                    "type": "address[] storage ref",
                                                    "value": "issues"
                                                },
                                                "id": 3995,
                                                "name": "Identifier",
                                                "src": "1916:6:21"
                                            }
                                        ],
                                        "id": 3996,
                                        "name": "Return",
                                        "src": "1909:13:21"
                                    }
                                ],
                                "id": 3997,
                                "name": "Block",
                                "src": "1898:32:21"
                            }
                        ],
                        "id": 3998,
                        "name": "FunctionDefinition",
                        "src": "1838:92:21"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "issueSecurity",
                            "scope": 4561,
                            "stateMutability": "nonpayable",
                            "superFunction": 6531,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "security",
                                            "scope": 4240,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3999,
                                                "name": "ElementaryTypeName",
                                                "src": "1961:7:21"
                                            }
                                        ],
                                        "id": 4000,
                                        "name": "VariableDeclaration",
                                        "src": "1961:16:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "productCategory",
                                            "scope": 4240,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 4001,
                                                "name": "ElementaryTypeName",
                                                "src": "1979:7:21"
                                            }
                                        ],
                                        "id": 4002,
                                        "name": "VariableDeclaration",
                                        "src": "1979:23:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "company",
                                            "scope": 4240,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 4003,
                                                "name": "ElementaryTypeName",
                                                "src": "2004:7:21"
                                            }
                                        ],
                                        "id": 4004,
                                        "name": "VariableDeclaration",
                                        "src": "2004:15:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "isin",
                                            "scope": 4240,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 4005,
                                                "name": "ElementaryTypeName",
                                                "src": "2021:7:21"
                                            }
                                        ],
                                        "id": 4006,
                                        "name": "VariableDeclaration",
                                        "src": "2021:12:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 4240,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4007,
                                                "name": "ElementaryTypeName",
                                                "src": "2035:7:21"
                                            }
                                        ],
                                        "id": 4008,
                                        "name": "VariableDeclaration",
                                        "src": "2035:16:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "issuer",
                                            "scope": 4240,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4009,
                                                "name": "ElementaryTypeName",
                                                "src": "2053:7:21"
                                            }
                                        ],
                                        "id": 4010,
                                        "name": "VariableDeclaration",
                                        "src": "2053:14:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "intermediary",
                                            "scope": 4240,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4011,
                                                "name": "ElementaryTypeName",
                                                "src": "2069:7:21"
                                            }
                                        ],
                                        "id": 4012,
                                        "name": "VariableDeclaration",
                                        "src": "2069:20:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "encodedRestrictions",
                                            "scope": 4240,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "bytes",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes",
                                                    "type": "bytes"
                                                },
                                                "id": 4013,
                                                "name": "ElementaryTypeName",
                                                "src": "2091:5:21"
                                            }
                                        ],
                                        "id": 4014,
                                        "name": "VariableDeclaration",
                                        "src": "2091:34:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "country",
                                            "scope": 4240,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 4015,
                                                "name": "ElementaryTypeName",
                                                "src": "2127:7:21"
                                            }
                                        ],
                                        "id": 4016,
                                        "name": "VariableDeclaration",
                                        "src": "2127:15:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "qualified",
                                            "scope": 4240,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 4017,
                                                "name": "ElementaryTypeName",
                                                "src": "2144:4:21"
                                            }
                                        ],
                                        "id": 4018,
                                        "name": "VariableDeclaration",
                                        "src": "2144:14:21"
                                    }
                                ],
                                "id": 4019,
                                "name": "ParameterList",
                                "src": "1960:199:21"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 4020,
                                "name": "ParameterList",
                                "src": "2199:0:21"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_8448e212d8897989d8a59a8fd78342ae018821c3b1804c908db20fb41cc02509",
                                                                    "typeString": "literal_string \"Unauthorized issuer of security.\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 4021,
                                                        "name": "Identifier",
                                                        "src": "2212:7:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4010,
                                                                    "type": "address",
                                                                    "value": "issuer"
                                                                },
                                                                "id": 4022,
                                                                "name": "Identifier",
                                                                "src": "2220:6:21"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "referencedDeclaration": null,
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9424,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 4023,
                                                                        "name": "Identifier",
                                                                        "src": "2228:3:21"
                                                                    }
                                                                ],
                                                                "id": 4024,
                                                                "name": "MemberAccess",
                                                                "src": "2228:10:21"
                                                            }
                                                        ],
                                                        "id": 4025,
                                                        "name": "BinaryOperation",
                                                        "src": "2220:18:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "556e617574686f72697a656420697373756572206f662073656375726974792e",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Unauthorized issuer of security.\"",
                                                            "value": "Unauthorized issuer of security."
                                                        },
                                                        "id": 4026,
                                                        "name": "Literal",
                                                        "src": "2240:34:21"
                                                    }
                                                ],
                                                "id": 4027,
                                                "name": "FunctionCall",
                                                "src": "2212:63:21"
                                            }
                                        ],
                                        "id": 4028,
                                        "name": "ExpressionStatement",
                                        "src": "2212:63:21"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                4032
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "restrictions",
                                                    "scope": 4239,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "bytes32[]",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "length": null,
                                                            "type": "bytes32[]"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "bytes32",
                                                                    "type": "bytes32"
                                                                },
                                                                "id": 4030,
                                                                "name": "ElementaryTypeName",
                                                                "src": "2287:7:21"
                                                            }
                                                        ],
                                                        "id": 4031,
                                                        "name": "ArrayTypeName",
                                                        "src": "2287:9:21"
                                                    }
                                                ],
                                                "id": 4032,
                                                "name": "VariableDeclaration",
                                                "src": "2287:29:21"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "bytes32[] memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                                    "typeString": "bytes calldata"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                                                    "typeString": "type(bytes32[] memory)"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "member_name": "decode",
                                                            "referencedDeclaration": null,
                                                            "type": "function () pure"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9411,
                                                                    "type": "abi",
                                                                    "value": "abi"
                                                                },
                                                                "id": 4033,
                                                                "name": "Identifier",
                                                                "src": "2320:3:21"
                                                            }
                                                        ],
                                                        "id": 4034,
                                                        "name": "MemberAccess",
                                                        "src": "2320:10:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4014,
                                                            "type": "bytes calldata",
                                                            "value": "encodedRestrictions"
                                                        },
                                                        "id": 4035,
                                                        "name": "Identifier",
                                                        "src": "2331:19:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isInlineArray": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "type": "type(bytes32[] memory)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "indexExpression": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(bytes32[] memory)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "type": "type(bytes32)",
                                                                            "value": "bytes32"
                                                                        },
                                                                        "id": 4036,
                                                                        "name": "ElementaryTypeNameExpression",
                                                                        "src": "2353:7:21"
                                                                    }
                                                                ],
                                                                "id": 4037,
                                                                "name": "IndexAccess",
                                                                "src": "2353:9:21"
                                                            }
                                                        ],
                                                        "id": 4038,
                                                        "name": "TupleExpression",
                                                        "src": "2352:11:21"
                                                    }
                                                ],
                                                "id": 4039,
                                                "name": "FunctionCall",
                                                "src": "2320:44:21"
                                            }
                                        ],
                                        "id": 4040,
                                        "name": "VariableDeclarationStatement",
                                        "src": "2286:78:21"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4000,
                                                            "type": "address",
                                                            "value": "security"
                                                        },
                                                        "id": 4041,
                                                        "name": "Identifier",
                                                        "src": "2378:8:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                            "typeString": "int_const 0"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)",
                                                                    "value": "address"
                                                                },
                                                                "id": 4042,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "2388:7:21"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "307830",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0x0"
                                                                },
                                                                "id": 4043,
                                                                "name": "Literal",
                                                                "src": "2396:3:21"
                                                            }
                                                        ],
                                                        "id": 4044,
                                                        "name": "FunctionCall",
                                                        "src": "2388:12:21"
                                                    }
                                                ],
                                                "id": 4045,
                                                "name": "BinaryOperation",
                                                "src": "2378:22:21"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                4047
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "name": "_payload",
                                                                    "scope": 4152,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "memory",
                                                                    "type": "bytes",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "bytes",
                                                                            "type": "bytes"
                                                                        },
                                                                        "id": 4046,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "2447:5:21"
                                                                    }
                                                                ],
                                                                "id": 4047,
                                                                "name": "VariableDeclaration",
                                                                "src": "2447:21:21"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bytes memory",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_89d29c4c62aed23557cdd6503067fff926c36e4130ad6bce6fa6ed9d62392f96",
                                                                                    "typeString": "literal_string \"initialize(bytes32,bytes32,address,address,address,address)\""
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "member_name": "encodeWithSignature",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function (string memory) pure returns (bytes memory)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9411,
                                                                                    "type": "abi",
                                                                                    "value": "abi"
                                                                                },
                                                                                "id": 4048,
                                                                                "name": "Identifier",
                                                                                "src": "2471:3:21"
                                                                            }
                                                                        ],
                                                                        "id": 4049,
                                                                        "name": "MemberAccess",
                                                                        "src": "2471:23:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "696e697469616c697a6528627974657333322c627974657333322c616464726573732c616464726573732c616464726573732c6164647265737329",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"initialize(bytes32,bytes32,address,address,address,address)\"",
                                                                            "value": "initialize(bytes32,bytes32,address,address,address,address)"
                                                                        },
                                                                        "id": 4050,
                                                                        "name": "Literal",
                                                                        "src": "2495:61:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4004,
                                                                            "type": "bytes32",
                                                                            "value": "company"
                                                                        },
                                                                        "id": 4051,
                                                                        "name": "Identifier",
                                                                        "src": "2558:7:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4006,
                                                                            "type": "bytes32",
                                                                            "value": "isin"
                                                                        },
                                                                        "id": 4052,
                                                                        "name": "Identifier",
                                                                        "src": "2567:4:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_SecuritiesFactory_$4561",
                                                                                            "typeString": "contract SecuritiesFactory"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)",
                                                                                    "value": "address"
                                                                                },
                                                                                "id": 4053,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "2573:7:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9498,
                                                                                    "type": "contract SecuritiesFactory",
                                                                                    "value": "this"
                                                                                },
                                                                                "id": 4054,
                                                                                "name": "Identifier",
                                                                                "src": "2581:4:21"
                                                                            }
                                                                        ],
                                                                        "id": 4055,
                                                                        "name": "FunctionCall",
                                                                        "src": "2573:13:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4010,
                                                                            "type": "address",
                                                                            "value": "issuer"
                                                                        },
                                                                        "id": 4056,
                                                                        "name": "Identifier",
                                                                        "src": "2588:6:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3964,
                                                                            "type": "address",
                                                                            "value": "client"
                                                                        },
                                                                        "id": 4057,
                                                                        "name": "Identifier",
                                                                        "src": "2596:6:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4008,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 4058,
                                                                        "name": "Identifier",
                                                                        "src": "2604:8:21"
                                                                    }
                                                                ],
                                                                "id": 4059,
                                                                "name": "FunctionCall",
                                                                "src": "2471:142:21"
                                                            }
                                                        ],
                                                        "id": 4060,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "2447:166:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                4062
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "name": "_securityToken",
                                                                    "scope": 4152,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "nonpayable",
                                                                            "type": "address"
                                                                        },
                                                                        "id": 4061,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "2657:7:21"
                                                                    }
                                                                ],
                                                                "id": 4062,
                                                                "name": "VariableDeclaration",
                                                                "src": "2657:22:21"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "address",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                                                    "typeString": "bytes memory"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1549,
                                                                            "type": "function (address,bytes memory) returns (address)",
                                                                            "value": "deployMinimal"
                                                                        },
                                                                        "id": 4063,
                                                                        "name": "Identifier",
                                                                        "src": "2682:13:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3962,
                                                                            "type": "address",
                                                                            "value": "securityAddress"
                                                                        },
                                                                        "id": 4064,
                                                                        "name": "Identifier",
                                                                        "src": "2696:15:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4047,
                                                                            "type": "bytes memory",
                                                                            "value": "_payload"
                                                                        },
                                                                        "id": 4065,
                                                                        "name": "Identifier",
                                                                        "src": "2713:8:21"
                                                                    }
                                                                ],
                                                                "id": 4066,
                                                                "name": "FunctionCall",
                                                                "src": "2682:40:21"
                                                            }
                                                        ],
                                                        "id": 4067,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "2657:65:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "isin",
                                                                            "referencedDeclaration": 3927,
                                                                            "type": "bytes32"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4068,
                                                                                                "name": "Identifier",
                                                                                                "src": "2739:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4062,
                                                                                                    "type": "address",
                                                                                                    "value": "_securityToken"
                                                                                                },
                                                                                                "id": 4069,
                                                                                                "name": "Identifier",
                                                                                                "src": "2758:14:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4071,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "2739:34:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4010,
                                                                                            "type": "address",
                                                                                            "value": "issuer"
                                                                                        },
                                                                                        "id": 4070,
                                                                                        "name": "Identifier",
                                                                                        "src": "2774:6:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4072,
                                                                                "name": "IndexAccess",
                                                                                "src": "2739:42:21"
                                                                            }
                                                                        ],
                                                                        "id": 4073,
                                                                        "name": "MemberAccess",
                                                                        "src": "2739:47:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4006,
                                                                            "type": "bytes32",
                                                                            "value": "isin"
                                                                        },
                                                                        "id": 4074,
                                                                        "name": "Identifier",
                                                                        "src": "2788:4:21"
                                                                    }
                                                                ],
                                                                "id": 4075,
                                                                "name": "Assignment",
                                                                "src": "2739:53:21"
                                                            }
                                                        ],
                                                        "id": 4076,
                                                        "name": "ExpressionStatement",
                                                        "src": "2739:53:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "company",
                                                                            "referencedDeclaration": 3925,
                                                                            "type": "bytes32"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4077,
                                                                                                "name": "Identifier",
                                                                                                "src": "2807:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4062,
                                                                                                    "type": "address",
                                                                                                    "value": "_securityToken"
                                                                                                },
                                                                                                "id": 4078,
                                                                                                "name": "Identifier",
                                                                                                "src": "2826:14:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4080,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "2807:34:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4010,
                                                                                            "type": "address",
                                                                                            "value": "issuer"
                                                                                        },
                                                                                        "id": 4079,
                                                                                        "name": "Identifier",
                                                                                        "src": "2842:6:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4081,
                                                                                "name": "IndexAccess",
                                                                                "src": "2807:42:21"
                                                                            }
                                                                        ],
                                                                        "id": 4082,
                                                                        "name": "MemberAccess",
                                                                        "src": "2807:50:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4004,
                                                                            "type": "bytes32",
                                                                            "value": "company"
                                                                        },
                                                                        "id": 4083,
                                                                        "name": "Identifier",
                                                                        "src": "2860:7:21"
                                                                    }
                                                                ],
                                                                "id": 4084,
                                                                "name": "Assignment",
                                                                "src": "2807:60:21"
                                                            }
                                                        ],
                                                        "id": 4085,
                                                        "name": "ExpressionStatement",
                                                        "src": "2807:60:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "currency",
                                                                            "referencedDeclaration": 3923,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4086,
                                                                                                "name": "Identifier",
                                                                                                "src": "2882:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4062,
                                                                                                    "type": "address",
                                                                                                    "value": "_securityToken"
                                                                                                },
                                                                                                "id": 4087,
                                                                                                "name": "Identifier",
                                                                                                "src": "2901:14:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4089,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "2882:34:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4010,
                                                                                            "type": "address",
                                                                                            "value": "issuer"
                                                                                        },
                                                                                        "id": 4088,
                                                                                        "name": "Identifier",
                                                                                        "src": "2917:6:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4090,
                                                                                "name": "IndexAccess",
                                                                                "src": "2882:42:21"
                                                                            }
                                                                        ],
                                                                        "id": 4091,
                                                                        "name": "MemberAccess",
                                                                        "src": "2882:51:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4008,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 4092,
                                                                        "name": "Identifier",
                                                                        "src": "2935:8:21"
                                                                    }
                                                                ],
                                                                "id": 4093,
                                                                "name": "Assignment",
                                                                "src": "2882:61:21"
                                                            }
                                                        ],
                                                        "id": 4094,
                                                        "name": "ExpressionStatement",
                                                        "src": "2882:61:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "token",
                                                                            "referencedDeclaration": 3935,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4095,
                                                                                                "name": "Identifier",
                                                                                                "src": "2958:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4062,
                                                                                                    "type": "address",
                                                                                                    "value": "_securityToken"
                                                                                                },
                                                                                                "id": 4096,
                                                                                                "name": "Identifier",
                                                                                                "src": "2977:14:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4098,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "2958:34:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4010,
                                                                                            "type": "address",
                                                                                            "value": "issuer"
                                                                                        },
                                                                                        "id": 4097,
                                                                                        "name": "Identifier",
                                                                                        "src": "2993:6:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4099,
                                                                                "name": "IndexAccess",
                                                                                "src": "2958:42:21"
                                                                            }
                                                                        ],
                                                                        "id": 4100,
                                                                        "name": "MemberAccess",
                                                                        "src": "2958:48:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4062,
                                                                            "type": "address",
                                                                            "value": "_securityToken"
                                                                        },
                                                                        "id": 4101,
                                                                        "name": "Identifier",
                                                                        "src": "3009:14:21"
                                                                    }
                                                                ],
                                                                "id": 4102,
                                                                "name": "Assignment",
                                                                "src": "2958:65:21"
                                                            }
                                                        ],
                                                        "id": 4103,
                                                        "name": "ExpressionStatement",
                                                        "src": "2958:65:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "dp",
                                                                            "referencedDeclaration": 3933,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4104,
                                                                                                "name": "Identifier",
                                                                                                "src": "3038:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4062,
                                                                                                    "type": "address",
                                                                                                    "value": "_securityToken"
                                                                                                },
                                                                                                "id": 4105,
                                                                                                "name": "Identifier",
                                                                                                "src": "3057:14:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4107,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "3038:34:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4010,
                                                                                            "type": "address",
                                                                                            "value": "issuer"
                                                                                        },
                                                                                        "id": 4106,
                                                                                        "name": "Identifier",
                                                                                        "src": "3073:6:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4108,
                                                                                "name": "IndexAccess",
                                                                                "src": "3038:42:21"
                                                                            }
                                                                        ],
                                                                        "id": 4109,
                                                                        "name": "MemberAccess",
                                                                        "src": "3038:45:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4012,
                                                                            "type": "address",
                                                                            "value": "intermediary"
                                                                        },
                                                                        "id": 4110,
                                                                        "name": "Identifier",
                                                                        "src": "3086:12:21"
                                                                    }
                                                                ],
                                                                "id": 4111,
                                                                "name": "Assignment",
                                                                "src": "3038:60:21"
                                                            }
                                                        ],
                                                        "id": 4112,
                                                        "name": "ExpressionStatement",
                                                        "src": "3038:60:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "qualified",
                                                                            "referencedDeclaration": 3937,
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4113,
                                                                                                "name": "Identifier",
                                                                                                "src": "3113:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4062,
                                                                                                    "type": "address",
                                                                                                    "value": "_securityToken"
                                                                                                },
                                                                                                "id": 4114,
                                                                                                "name": "Identifier",
                                                                                                "src": "3132:14:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4116,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "3113:34:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4010,
                                                                                            "type": "address",
                                                                                            "value": "issuer"
                                                                                        },
                                                                                        "id": 4115,
                                                                                        "name": "Identifier",
                                                                                        "src": "3148:6:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4117,
                                                                                "name": "IndexAccess",
                                                                                "src": "3113:42:21"
                                                                            }
                                                                        ],
                                                                        "id": 4118,
                                                                        "name": "MemberAccess",
                                                                        "src": "3113:52:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4018,
                                                                            "type": "bool",
                                                                            "value": "qualified"
                                                                        },
                                                                        "id": 4119,
                                                                        "name": "Identifier",
                                                                        "src": "3168:9:21"
                                                                    }
                                                                ],
                                                                "id": 4120,
                                                                "name": "Assignment",
                                                                "src": "3113:64:21"
                                                            }
                                                        ],
                                                        "id": 4121,
                                                        "name": "ExpressionStatement",
                                                        "src": "3113:64:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3956,
                                                                                    "type": "mapping(address => address)",
                                                                                    "value": "holders"
                                                                                },
                                                                                "id": 4122,
                                                                                "name": "Identifier",
                                                                                "src": "3202:7:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4062,
                                                                                    "type": "address",
                                                                                    "value": "_securityToken"
                                                                                },
                                                                                "id": 4123,
                                                                                "name": "Identifier",
                                                                                "src": "3210:14:21"
                                                                            }
                                                                        ],
                                                                        "id": 4124,
                                                                        "name": "IndexAccess",
                                                                        "src": "3202:23:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4010,
                                                                            "type": "address",
                                                                            "value": "issuer"
                                                                        },
                                                                        "id": 4125,
                                                                        "name": "Identifier",
                                                                        "src": "3228:6:21"
                                                                    }
                                                                ],
                                                                "id": 4126,
                                                                "name": "Assignment",
                                                                "src": "3202:32:21"
                                                            }
                                                        ],
                                                        "id": 4127,
                                                        "name": "ExpressionStatement",
                                                        "src": "3202:32:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3960,
                                                                                    "type": "mapping(address => address)",
                                                                                    "value": "securityTokens"
                                                                                },
                                                                                "id": 4128,
                                                                                "name": "Identifier",
                                                                                "src": "3252:14:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4062,
                                                                                    "type": "address",
                                                                                    "value": "_securityToken"
                                                                                },
                                                                                "id": 4129,
                                                                                "name": "Identifier",
                                                                                "src": "3267:14:21"
                                                                            }
                                                                        ],
                                                                        "id": 4130,
                                                                        "name": "IndexAccess",
                                                                        "src": "3252:30:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4000,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 4131,
                                                                        "name": "Identifier",
                                                                        "src": "3285:8:21"
                                                                    }
                                                                ],
                                                                "id": 4132,
                                                                "name": "Assignment",
                                                                "src": "3252:41:21"
                                                            }
                                                        ],
                                                        "id": 4133,
                                                        "name": "ExpressionStatement",
                                                        "src": "3252:41:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "push",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function (address) returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3941,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "issues"
                                                                                },
                                                                                "id": 4134,
                                                                                "name": "Identifier",
                                                                                "src": "3308:6:21"
                                                                            }
                                                                        ],
                                                                        "id": 4136,
                                                                        "name": "MemberAccess",
                                                                        "src": "3308:11:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4062,
                                                                            "type": "address",
                                                                            "value": "_securityToken"
                                                                        },
                                                                        "id": 4137,
                                                                        "name": "Identifier",
                                                                        "src": "3320:14:21"
                                                                    }
                                                                ],
                                                                "id": 4138,
                                                                "name": "FunctionCall",
                                                                "src": "3308:27:21"
                                                            }
                                                        ],
                                                        "id": 4139,
                                                        "name": "ExpressionStatement",
                                                        "src": "3308:27:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                                                                    "typeString": "bytes32[] memory"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3921,
                                                                            "type": "function (address,bytes32,address,bytes32,address,bool,address,bytes32[] memory,bytes32)",
                                                                            "value": "securitiesAdded"
                                                                        },
                                                                        "id": 4140,
                                                                        "name": "Identifier",
                                                                        "src": "3365:15:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4062,
                                                                            "type": "address",
                                                                            "value": "_securityToken"
                                                                        },
                                                                        "id": 4141,
                                                                        "name": "Identifier",
                                                                        "src": "3381:14:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4002,
                                                                            "type": "bytes32",
                                                                            "value": "productCategory"
                                                                        },
                                                                        "id": 4142,
                                                                        "name": "Identifier",
                                                                        "src": "3397:15:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4010,
                                                                            "type": "address",
                                                                            "value": "issuer"
                                                                        },
                                                                        "id": 4143,
                                                                        "name": "Identifier",
                                                                        "src": "3414:6:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4006,
                                                                            "type": "bytes32",
                                                                            "value": "isin"
                                                                        },
                                                                        "id": 4144,
                                                                        "name": "Identifier",
                                                                        "src": "3422:4:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4008,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 4145,
                                                                        "name": "Identifier",
                                                                        "src": "3428:8:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4018,
                                                                            "type": "bool",
                                                                            "value": "qualified"
                                                                        },
                                                                        "id": 4146,
                                                                        "name": "Identifier",
                                                                        "src": "3438:9:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4012,
                                                                            "type": "address",
                                                                            "value": "intermediary"
                                                                        },
                                                                        "id": 4147,
                                                                        "name": "Identifier",
                                                                        "src": "3449:12:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4032,
                                                                            "type": "bytes32[] memory",
                                                                            "value": "restrictions"
                                                                        },
                                                                        "id": 4148,
                                                                        "name": "Identifier",
                                                                        "src": "3463:12:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4016,
                                                                            "type": "bytes32",
                                                                            "value": "country"
                                                                        },
                                                                        "id": 4149,
                                                                        "name": "Identifier",
                                                                        "src": "3477:7:21"
                                                                    }
                                                                ],
                                                                "id": 4150,
                                                                "name": "FunctionCall",
                                                                "src": "3365:120:21"
                                                            }
                                                        ],
                                                        "id": 4151,
                                                        "name": "EmitStatement",
                                                        "src": "3360:125:21"
                                                    }
                                                ],
                                                "id": 4152,
                                                "name": "Block",
                                                "src": "2401:1096:21"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "isin",
                                                                            "referencedDeclaration": 3927,
                                                                            "type": "bytes32"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4153,
                                                                                                "name": "Identifier",
                                                                                                "src": "3549:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4000,
                                                                                                    "type": "address",
                                                                                                    "value": "security"
                                                                                                },
                                                                                                "id": 4154,
                                                                                                "name": "Identifier",
                                                                                                "src": "3568:8:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4156,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "3549:28:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4010,
                                                                                            "type": "address",
                                                                                            "value": "issuer"
                                                                                        },
                                                                                        "id": 4155,
                                                                                        "name": "Identifier",
                                                                                        "src": "3578:6:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4157,
                                                                                "name": "IndexAccess",
                                                                                "src": "3549:36:21"
                                                                            }
                                                                        ],
                                                                        "id": 4158,
                                                                        "name": "MemberAccess",
                                                                        "src": "3549:41:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4006,
                                                                            "type": "bytes32",
                                                                            "value": "isin"
                                                                        },
                                                                        "id": 4159,
                                                                        "name": "Identifier",
                                                                        "src": "3592:4:21"
                                                                    }
                                                                ],
                                                                "id": 4160,
                                                                "name": "Assignment",
                                                                "src": "3549:47:21"
                                                            }
                                                        ],
                                                        "id": 4161,
                                                        "name": "ExpressionStatement",
                                                        "src": "3549:47:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "company",
                                                                            "referencedDeclaration": 3925,
                                                                            "type": "bytes32"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4162,
                                                                                                "name": "Identifier",
                                                                                                "src": "3611:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4000,
                                                                                                    "type": "address",
                                                                                                    "value": "security"
                                                                                                },
                                                                                                "id": 4163,
                                                                                                "name": "Identifier",
                                                                                                "src": "3630:8:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4165,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "3611:28:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4010,
                                                                                            "type": "address",
                                                                                            "value": "issuer"
                                                                                        },
                                                                                        "id": 4164,
                                                                                        "name": "Identifier",
                                                                                        "src": "3640:6:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4166,
                                                                                "name": "IndexAccess",
                                                                                "src": "3611:36:21"
                                                                            }
                                                                        ],
                                                                        "id": 4167,
                                                                        "name": "MemberAccess",
                                                                        "src": "3611:44:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4004,
                                                                            "type": "bytes32",
                                                                            "value": "company"
                                                                        },
                                                                        "id": 4168,
                                                                        "name": "Identifier",
                                                                        "src": "3658:7:21"
                                                                    }
                                                                ],
                                                                "id": 4169,
                                                                "name": "Assignment",
                                                                "src": "3611:54:21"
                                                            }
                                                        ],
                                                        "id": 4170,
                                                        "name": "ExpressionStatement",
                                                        "src": "3611:54:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "currency",
                                                                            "referencedDeclaration": 3923,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4171,
                                                                                                "name": "Identifier",
                                                                                                "src": "3680:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4000,
                                                                                                    "type": "address",
                                                                                                    "value": "security"
                                                                                                },
                                                                                                "id": 4172,
                                                                                                "name": "Identifier",
                                                                                                "src": "3699:8:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4174,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "3680:28:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4010,
                                                                                            "type": "address",
                                                                                            "value": "issuer"
                                                                                        },
                                                                                        "id": 4173,
                                                                                        "name": "Identifier",
                                                                                        "src": "3709:6:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4175,
                                                                                "name": "IndexAccess",
                                                                                "src": "3680:36:21"
                                                                            }
                                                                        ],
                                                                        "id": 4176,
                                                                        "name": "MemberAccess",
                                                                        "src": "3680:45:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4008,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 4177,
                                                                        "name": "Identifier",
                                                                        "src": "3727:8:21"
                                                                    }
                                                                ],
                                                                "id": 4178,
                                                                "name": "Assignment",
                                                                "src": "3680:55:21"
                                                            }
                                                        ],
                                                        "id": 4179,
                                                        "name": "ExpressionStatement",
                                                        "src": "3680:55:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "token",
                                                                            "referencedDeclaration": 3935,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4180,
                                                                                                "name": "Identifier",
                                                                                                "src": "3750:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4000,
                                                                                                    "type": "address",
                                                                                                    "value": "security"
                                                                                                },
                                                                                                "id": 4181,
                                                                                                "name": "Identifier",
                                                                                                "src": "3769:8:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4183,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "3750:28:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4010,
                                                                                            "type": "address",
                                                                                            "value": "issuer"
                                                                                        },
                                                                                        "id": 4182,
                                                                                        "name": "Identifier",
                                                                                        "src": "3779:6:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4184,
                                                                                "name": "IndexAccess",
                                                                                "src": "3750:36:21"
                                                                            }
                                                                        ],
                                                                        "id": 4185,
                                                                        "name": "MemberAccess",
                                                                        "src": "3750:42:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4000,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 4186,
                                                                        "name": "Identifier",
                                                                        "src": "3795:8:21"
                                                                    }
                                                                ],
                                                                "id": 4187,
                                                                "name": "Assignment",
                                                                "src": "3750:53:21"
                                                            }
                                                        ],
                                                        "id": 4188,
                                                        "name": "ExpressionStatement",
                                                        "src": "3750:53:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "dp",
                                                                            "referencedDeclaration": 3933,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4189,
                                                                                                "name": "Identifier",
                                                                                                "src": "3818:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4000,
                                                                                                    "type": "address",
                                                                                                    "value": "security"
                                                                                                },
                                                                                                "id": 4190,
                                                                                                "name": "Identifier",
                                                                                                "src": "3837:8:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4192,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "3818:28:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4010,
                                                                                            "type": "address",
                                                                                            "value": "issuer"
                                                                                        },
                                                                                        "id": 4191,
                                                                                        "name": "Identifier",
                                                                                        "src": "3847:6:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4193,
                                                                                "name": "IndexAccess",
                                                                                "src": "3818:36:21"
                                                                            }
                                                                        ],
                                                                        "id": 4194,
                                                                        "name": "MemberAccess",
                                                                        "src": "3818:39:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4012,
                                                                            "type": "address",
                                                                            "value": "intermediary"
                                                                        },
                                                                        "id": 4195,
                                                                        "name": "Identifier",
                                                                        "src": "3860:12:21"
                                                                    }
                                                                ],
                                                                "id": 4196,
                                                                "name": "Assignment",
                                                                "src": "3818:54:21"
                                                            }
                                                        ],
                                                        "id": 4197,
                                                        "name": "ExpressionStatement",
                                                        "src": "3818:54:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "qualified",
                                                                            "referencedDeclaration": 3937,
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4198,
                                                                                                "name": "Identifier",
                                                                                                "src": "3887:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4000,
                                                                                                    "type": "address",
                                                                                                    "value": "security"
                                                                                                },
                                                                                                "id": 4199,
                                                                                                "name": "Identifier",
                                                                                                "src": "3906:8:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4201,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "3887:28:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4010,
                                                                                            "type": "address",
                                                                                            "value": "issuer"
                                                                                        },
                                                                                        "id": 4200,
                                                                                        "name": "Identifier",
                                                                                        "src": "3916:6:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4202,
                                                                                "name": "IndexAccess",
                                                                                "src": "3887:36:21"
                                                                            }
                                                                        ],
                                                                        "id": 4203,
                                                                        "name": "MemberAccess",
                                                                        "src": "3887:46:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4018,
                                                                            "type": "bool",
                                                                            "value": "qualified"
                                                                        },
                                                                        "id": 4204,
                                                                        "name": "Identifier",
                                                                        "src": "3936:9:21"
                                                                    }
                                                                ],
                                                                "id": 4205,
                                                                "name": "Assignment",
                                                                "src": "3887:58:21"
                                                            }
                                                        ],
                                                        "id": 4206,
                                                        "name": "ExpressionStatement",
                                                        "src": "3887:58:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3956,
                                                                                    "type": "mapping(address => address)",
                                                                                    "value": "holders"
                                                                                },
                                                                                "id": 4207,
                                                                                "name": "Identifier",
                                                                                "src": "3970:7:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4000,
                                                                                    "type": "address",
                                                                                    "value": "security"
                                                                                },
                                                                                "id": 4208,
                                                                                "name": "Identifier",
                                                                                "src": "3978:8:21"
                                                                            }
                                                                        ],
                                                                        "id": 4209,
                                                                        "name": "IndexAccess",
                                                                        "src": "3970:17:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4010,
                                                                            "type": "address",
                                                                            "value": "issuer"
                                                                        },
                                                                        "id": 4210,
                                                                        "name": "Identifier",
                                                                        "src": "3990:6:21"
                                                                    }
                                                                ],
                                                                "id": 4211,
                                                                "name": "Assignment",
                                                                "src": "3970:26:21"
                                                            }
                                                        ],
                                                        "id": 4212,
                                                        "name": "ExpressionStatement",
                                                        "src": "3970:26:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3960,
                                                                                    "type": "mapping(address => address)",
                                                                                    "value": "securityTokens"
                                                                                },
                                                                                "id": 4213,
                                                                                "name": "Identifier",
                                                                                "src": "4014:14:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4000,
                                                                                    "type": "address",
                                                                                    "value": "security"
                                                                                },
                                                                                "id": 4214,
                                                                                "name": "Identifier",
                                                                                "src": "4029:8:21"
                                                                            }
                                                                        ],
                                                                        "id": 4215,
                                                                        "name": "IndexAccess",
                                                                        "src": "4014:24:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4000,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 4216,
                                                                        "name": "Identifier",
                                                                        "src": "4041:8:21"
                                                                    }
                                                                ],
                                                                "id": 4217,
                                                                "name": "Assignment",
                                                                "src": "4014:35:21"
                                                            }
                                                        ],
                                                        "id": 4218,
                                                        "name": "ExpressionStatement",
                                                        "src": "4014:35:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "push",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function (address) returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3941,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "issues"
                                                                                },
                                                                                "id": 4219,
                                                                                "name": "Identifier",
                                                                                "src": "4064:6:21"
                                                                            }
                                                                        ],
                                                                        "id": 4221,
                                                                        "name": "MemberAccess",
                                                                        "src": "4064:11:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4000,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 4222,
                                                                        "name": "Identifier",
                                                                        "src": "4076:8:21"
                                                                    }
                                                                ],
                                                                "id": 4223,
                                                                "name": "FunctionCall",
                                                                "src": "4064:21:21"
                                                            }
                                                        ],
                                                        "id": 4224,
                                                        "name": "ExpressionStatement",
                                                        "src": "4064:21:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                                                                    "typeString": "bytes32[] memory"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3921,
                                                                            "type": "function (address,bytes32,address,bytes32,address,bool,address,bytes32[] memory,bytes32)",
                                                                            "value": "securitiesAdded"
                                                                        },
                                                                        "id": 4225,
                                                                        "name": "Identifier",
                                                                        "src": "4119:15:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4000,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 4226,
                                                                        "name": "Identifier",
                                                                        "src": "4135:8:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4002,
                                                                            "type": "bytes32",
                                                                            "value": "productCategory"
                                                                        },
                                                                        "id": 4227,
                                                                        "name": "Identifier",
                                                                        "src": "4145:15:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4010,
                                                                            "type": "address",
                                                                            "value": "issuer"
                                                                        },
                                                                        "id": 4228,
                                                                        "name": "Identifier",
                                                                        "src": "4162:6:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4006,
                                                                            "type": "bytes32",
                                                                            "value": "isin"
                                                                        },
                                                                        "id": 4229,
                                                                        "name": "Identifier",
                                                                        "src": "4170:4:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4008,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 4230,
                                                                        "name": "Identifier",
                                                                        "src": "4176:8:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4018,
                                                                            "type": "bool",
                                                                            "value": "qualified"
                                                                        },
                                                                        "id": 4231,
                                                                        "name": "Identifier",
                                                                        "src": "4186:9:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4012,
                                                                            "type": "address",
                                                                            "value": "intermediary"
                                                                        },
                                                                        "id": 4232,
                                                                        "name": "Identifier",
                                                                        "src": "4197:12:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4032,
                                                                            "type": "bytes32[] memory",
                                                                            "value": "restrictions"
                                                                        },
                                                                        "id": 4233,
                                                                        "name": "Identifier",
                                                                        "src": "4211:12:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4016,
                                                                            "type": "bytes32",
                                                                            "value": "country"
                                                                        },
                                                                        "id": 4234,
                                                                        "name": "Identifier",
                                                                        "src": "4225:7:21"
                                                                    }
                                                                ],
                                                                "id": 4235,
                                                                "name": "FunctionCall",
                                                                "src": "4119:114:21"
                                                            }
                                                        ],
                                                        "id": 4236,
                                                        "name": "EmitStatement",
                                                        "src": "4114:119:21"
                                                    }
                                                ],
                                                "id": 4237,
                                                "name": "Block",
                                                "src": "3511:734:21"
                                            }
                                        ],
                                        "id": 4238,
                                        "name": "IfStatement",
                                        "src": "2375:1870:21"
                                    }
                                ],
                                "id": 4239,
                                "name": "Block",
                                "src": "2199:2053:21"
                            }
                        ],
                        "id": 4240,
                        "name": "FunctionDefinition",
                        "src": "1938:2314:21"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getHolder",
                            "scope": 4561,
                            "stateMutability": "view",
                            "superFunction": 6579,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_securityToken",
                                            "scope": 4252,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4241,
                                                "name": "ElementaryTypeName",
                                                "src": "4279:7:21"
                                            }
                                        ],
                                        "id": 4242,
                                        "name": "VariableDeclaration",
                                        "src": "4279:22:21"
                                    }
                                ],
                                "id": 4243,
                                "name": "ParameterList",
                                "src": "4278:24:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4252,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4244,
                                                "name": "ElementaryTypeName",
                                                "src": "4325:7:21"
                                            }
                                        ],
                                        "id": 4245,
                                        "name": "VariableDeclaration",
                                        "src": "4325:7:21"
                                    }
                                ],
                                "id": 4246,
                                "name": "ParameterList",
                                "src": "4324:9:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 4246
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3956,
                                                            "type": "mapping(address => address)",
                                                            "value": "holders"
                                                        },
                                                        "id": 4247,
                                                        "name": "Identifier",
                                                        "src": "4351:7:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4242,
                                                            "type": "address",
                                                            "value": "_securityToken"
                                                        },
                                                        "id": 4248,
                                                        "name": "Identifier",
                                                        "src": "4359:14:21"
                                                    }
                                                ],
                                                "id": 4249,
                                                "name": "IndexAccess",
                                                "src": "4351:23:21"
                                            }
                                        ],
                                        "id": 4250,
                                        "name": "Return",
                                        "src": "4344:30:21"
                                    }
                                ],
                                "id": 4251,
                                "name": "Block",
                                "src": "4333:49:21"
                            }
                        ],
                        "id": 4252,
                        "name": "FunctionDefinition",
                        "src": "4260:122:21"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getSecurity",
                            "scope": 4561,
                            "stateMutability": "view",
                            "superFunction": 6586,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_securityToken",
                                            "scope": 4264,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4253,
                                                "name": "ElementaryTypeName",
                                                "src": "4411:7:21"
                                            }
                                        ],
                                        "id": 4254,
                                        "name": "VariableDeclaration",
                                        "src": "4411:22:21"
                                    }
                                ],
                                "id": 4255,
                                "name": "ParameterList",
                                "src": "4410:24:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4264,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4256,
                                                "name": "ElementaryTypeName",
                                                "src": "4457:7:21"
                                            }
                                        ],
                                        "id": 4257,
                                        "name": "VariableDeclaration",
                                        "src": "4457:7:21"
                                    }
                                ],
                                "id": 4258,
                                "name": "ParameterList",
                                "src": "4456:9:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 4258
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3960,
                                                            "type": "mapping(address => address)",
                                                            "value": "securityTokens"
                                                        },
                                                        "id": 4259,
                                                        "name": "Identifier",
                                                        "src": "4483:14:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4254,
                                                            "type": "address",
                                                            "value": "_securityToken"
                                                        },
                                                        "id": 4260,
                                                        "name": "Identifier",
                                                        "src": "4498:14:21"
                                                    }
                                                ],
                                                "id": 4261,
                                                "name": "IndexAccess",
                                                "src": "4483:30:21"
                                            }
                                        ],
                                        "id": 4262,
                                        "name": "Return",
                                        "src": "4476:37:21"
                                    }
                                ],
                                "id": 4263,
                                "name": "Block",
                                "src": "4465:56:21"
                            }
                        ],
                        "id": 4264,
                        "name": "FunctionDefinition",
                        "src": "4390:131:21"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getSecurityToken",
                            "scope": 4561,
                            "stateMutability": "view",
                            "superFunction": 6548,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_securityToken",
                                            "scope": 4314,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4265,
                                                "name": "ElementaryTypeName",
                                                "src": "4555:7:21"
                                            }
                                        ],
                                        "id": 4266,
                                        "name": "VariableDeclaration",
                                        "src": "4555:22:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_issuer",
                                            "scope": 4314,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4267,
                                                "name": "ElementaryTypeName",
                                                "src": "4579:7:21"
                                            }
                                        ],
                                        "id": 4268,
                                        "name": "VariableDeclaration",
                                        "src": "4579:15:21"
                                    }
                                ],
                                "id": 4269,
                                "name": "ParameterList",
                                "src": "4554:41:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4314,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4270,
                                                "name": "ElementaryTypeName",
                                                "src": "4618:7:21"
                                            }
                                        ],
                                        "id": 4271,
                                        "name": "VariableDeclaration",
                                        "src": "4618:7:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4314,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 4272,
                                                "name": "ElementaryTypeName",
                                                "src": "4627:7:21"
                                            }
                                        ],
                                        "id": 4273,
                                        "name": "VariableDeclaration",
                                        "src": "4627:7:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4314,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 4274,
                                                "name": "ElementaryTypeName",
                                                "src": "4636:7:21"
                                            }
                                        ],
                                        "id": 4275,
                                        "name": "VariableDeclaration",
                                        "src": "4636:7:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4314,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4276,
                                                "name": "ElementaryTypeName",
                                                "src": "4645:7:21"
                                            }
                                        ],
                                        "id": 4277,
                                        "name": "VariableDeclaration",
                                        "src": "4645:7:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4314,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 4278,
                                                "name": "ElementaryTypeName",
                                                "src": "4653:4:21"
                                            }
                                        ],
                                        "id": 4279,
                                        "name": "VariableDeclaration",
                                        "src": "4653:4:21"
                                    }
                                ],
                                "id": 4280,
                                "name": "ParameterList",
                                "src": "4617:41:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 4280
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isInlineArray": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "tuple(address,bytes32,bytes32,address,bool)"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "token",
                                                            "referencedDeclaration": 3935,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3947,
                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                    "value": "securitiesHoldings"
                                                                                },
                                                                                "id": 4281,
                                                                                "name": "Identifier",
                                                                                "src": "4677:18:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4266,
                                                                                    "type": "address",
                                                                                    "value": "_securityToken"
                                                                                },
                                                                                "id": 4282,
                                                                                "name": "Identifier",
                                                                                "src": "4696:14:21"
                                                                            }
                                                                        ],
                                                                        "id": 4283,
                                                                        "name": "IndexAccess",
                                                                        "src": "4677:34:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4268,
                                                                            "type": "address",
                                                                            "value": "_issuer"
                                                                        },
                                                                        "id": 4284,
                                                                        "name": "Identifier",
                                                                        "src": "4712:7:21"
                                                                    }
                                                                ],
                                                                "id": 4285,
                                                                "name": "IndexAccess",
                                                                "src": "4677:43:21"
                                                            }
                                                        ],
                                                        "id": 4286,
                                                        "name": "MemberAccess",
                                                        "src": "4677:49:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "isin",
                                                            "referencedDeclaration": 3927,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3947,
                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                    "value": "securitiesHoldings"
                                                                                },
                                                                                "id": 4287,
                                                                                "name": "Identifier",
                                                                                "src": "4746:18:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4266,
                                                                                    "type": "address",
                                                                                    "value": "_securityToken"
                                                                                },
                                                                                "id": 4288,
                                                                                "name": "Identifier",
                                                                                "src": "4765:14:21"
                                                                            }
                                                                        ],
                                                                        "id": 4289,
                                                                        "name": "IndexAccess",
                                                                        "src": "4746:34:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4268,
                                                                            "type": "address",
                                                                            "value": "_issuer"
                                                                        },
                                                                        "id": 4290,
                                                                        "name": "Identifier",
                                                                        "src": "4781:7:21"
                                                                    }
                                                                ],
                                                                "id": 4291,
                                                                "name": "IndexAccess",
                                                                "src": "4746:43:21"
                                                            }
                                                        ],
                                                        "id": 4292,
                                                        "name": "MemberAccess",
                                                        "src": "4746:48:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "company",
                                                            "referencedDeclaration": 3925,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3947,
                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                    "value": "securitiesHoldings"
                                                                                },
                                                                                "id": 4293,
                                                                                "name": "Identifier",
                                                                                "src": "4813:18:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4266,
                                                                                    "type": "address",
                                                                                    "value": "_securityToken"
                                                                                },
                                                                                "id": 4294,
                                                                                "name": "Identifier",
                                                                                "src": "4832:14:21"
                                                                            }
                                                                        ],
                                                                        "id": 4295,
                                                                        "name": "IndexAccess",
                                                                        "src": "4813:34:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4268,
                                                                            "type": "address",
                                                                            "value": "_issuer"
                                                                        },
                                                                        "id": 4296,
                                                                        "name": "Identifier",
                                                                        "src": "4848:7:21"
                                                                    }
                                                                ],
                                                                "id": 4297,
                                                                "name": "IndexAccess",
                                                                "src": "4813:43:21"
                                                            }
                                                        ],
                                                        "id": 4298,
                                                        "name": "MemberAccess",
                                                        "src": "4813:51:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "currency",
                                                            "referencedDeclaration": 3923,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3947,
                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                    "value": "securitiesHoldings"
                                                                                },
                                                                                "id": 4299,
                                                                                "name": "Identifier",
                                                                                "src": "4883:18:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4266,
                                                                                    "type": "address",
                                                                                    "value": "_securityToken"
                                                                                },
                                                                                "id": 4300,
                                                                                "name": "Identifier",
                                                                                "src": "4902:14:21"
                                                                            }
                                                                        ],
                                                                        "id": 4301,
                                                                        "name": "IndexAccess",
                                                                        "src": "4883:34:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4268,
                                                                            "type": "address",
                                                                            "value": "_issuer"
                                                                        },
                                                                        "id": 4302,
                                                                        "name": "Identifier",
                                                                        "src": "4918:7:21"
                                                                    }
                                                                ],
                                                                "id": 4303,
                                                                "name": "IndexAccess",
                                                                "src": "4883:43:21"
                                                            }
                                                        ],
                                                        "id": 4304,
                                                        "name": "MemberAccess",
                                                        "src": "4883:52:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "qualified",
                                                            "referencedDeclaration": 3937,
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3947,
                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                    "value": "securitiesHoldings"
                                                                                },
                                                                                "id": 4305,
                                                                                "name": "Identifier",
                                                                                "src": "4954:18:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4266,
                                                                                    "type": "address",
                                                                                    "value": "_securityToken"
                                                                                },
                                                                                "id": 4306,
                                                                                "name": "Identifier",
                                                                                "src": "4973:14:21"
                                                                            }
                                                                        ],
                                                                        "id": 4307,
                                                                        "name": "IndexAccess",
                                                                        "src": "4954:34:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4268,
                                                                            "type": "address",
                                                                            "value": "_issuer"
                                                                        },
                                                                        "id": 4308,
                                                                        "name": "Identifier",
                                                                        "src": "4989:7:21"
                                                                    }
                                                                ],
                                                                "id": 4309,
                                                                "name": "IndexAccess",
                                                                "src": "4954:43:21"
                                                            }
                                                        ],
                                                        "id": 4310,
                                                        "name": "MemberAccess",
                                                        "src": "4954:53:21"
                                                    }
                                                ],
                                                "id": 4311,
                                                "name": "TupleExpression",
                                                "src": "4676:350:21"
                                            }
                                        ],
                                        "id": 4312,
                                        "name": "Return",
                                        "src": "4669:357:21"
                                    }
                                ],
                                "id": 4313,
                                "name": "Block",
                                "src": "4658:376:21"
                            }
                        ],
                        "id": 4314,
                        "name": "FunctionDefinition",
                        "src": "4529:505:21"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "addBalance",
                            "scope": 4561,
                            "stateMutability": "nonpayable",
                            "superFunction": 6559,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "security",
                                            "scope": 4420,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4315,
                                                "name": "ElementaryTypeName",
                                                "src": "5066:7:21"
                                            }
                                        ],
                                        "id": 4316,
                                        "name": "VariableDeclaration",
                                        "src": "5066:16:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "transferor",
                                            "scope": 4420,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4317,
                                                "name": "ElementaryTypeName",
                                                "src": "5084:7:21"
                                            }
                                        ],
                                        "id": 4318,
                                        "name": "VariableDeclaration",
                                        "src": "5084:18:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "transferee",
                                            "scope": 4420,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4319,
                                                "name": "ElementaryTypeName",
                                                "src": "5104:7:21"
                                            }
                                        ],
                                        "id": 4320,
                                        "name": "VariableDeclaration",
                                        "src": "5104:18:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 4420,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 4321,
                                                "name": "ElementaryTypeName",
                                                "src": "5124:7:21"
                                            }
                                        ],
                                        "id": 4322,
                                        "name": "VariableDeclaration",
                                        "src": "5124:14:21"
                                    }
                                ],
                                "id": 4323,
                                "name": "ParameterList",
                                "src": "5065:74:21"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 4324,
                                "name": "ParameterList",
                                "src": "5149:0:21"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_b89edf027d3d1129b9f2c8dcd2ba89ffc6487f04ca050032214e13175a19a74a",
                                                                    "typeString": "literal_string \"Unauthorized access\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 4325,
                                                        "name": "Identifier",
                                                        "src": "5160:7:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3956,
                                                                            "type": "mapping(address => address)",
                                                                            "value": "holders"
                                                                        },
                                                                        "id": 4326,
                                                                        "name": "Identifier",
                                                                        "src": "5168:7:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4316,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 4327,
                                                                        "name": "Identifier",
                                                                        "src": "5176:8:21"
                                                                    }
                                                                ],
                                                                "id": 4328,
                                                                "name": "IndexAccess",
                                                                "src": "5168:17:21"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "referencedDeclaration": null,
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9424,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 4329,
                                                                        "name": "Identifier",
                                                                        "src": "5187:3:21"
                                                                    }
                                                                ],
                                                                "id": 4330,
                                                                "name": "MemberAccess",
                                                                "src": "5187:10:21"
                                                            }
                                                        ],
                                                        "id": 4331,
                                                        "name": "BinaryOperation",
                                                        "src": "5168:29:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "556e617574686f72697a656420616363657373",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Unauthorized access\"",
                                                            "value": "Unauthorized access"
                                                        },
                                                        "id": 4332,
                                                        "name": "Literal",
                                                        "src": "5199:21:21"
                                                    }
                                                ],
                                                "id": 4333,
                                                "name": "FunctionCall",
                                                "src": "5160:61:21"
                                            }
                                        ],
                                        "id": 4334,
                                        "name": "ExpressionStatement",
                                        "src": "5160:61:21"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "!=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4318,
                                                            "type": "address",
                                                            "value": "transferor"
                                                        },
                                                        "id": 4335,
                                                        "name": "Identifier",
                                                        "src": "5237:10:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                            "typeString": "int_const 0"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)",
                                                                    "value": "address"
                                                                },
                                                                "id": 4336,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "5249:7:21"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "307830",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0x0"
                                                                },
                                                                "id": 4337,
                                                                "name": "Literal",
                                                                "src": "5257:3:21"
                                                            }
                                                        ],
                                                        "id": 4338,
                                                        "name": "FunctionCall",
                                                        "src": "5249:12:21"
                                                    }
                                                ],
                                                "id": 4339,
                                                "name": "BinaryOperation",
                                                "src": "5237:24:21"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "amount",
                                                                            "referencedDeclaration": 3929,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4340,
                                                                                                "name": "Identifier",
                                                                                                "src": "5277:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4316,
                                                                                                    "type": "address",
                                                                                                    "value": "security"
                                                                                                },
                                                                                                "id": 4341,
                                                                                                "name": "Identifier",
                                                                                                "src": "5296:8:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4343,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "5277:28:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4320,
                                                                                            "type": "address",
                                                                                            "value": "transferee"
                                                                                        },
                                                                                        "id": 4342,
                                                                                        "name": "Identifier",
                                                                                        "src": "5306:10:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4344,
                                                                                "name": "IndexAccess",
                                                                                "src": "5277:40:21"
                                                                            }
                                                                        ],
                                                                        "id": 4345,
                                                                        "name": "MemberAccess",
                                                                        "src": "5277:47:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "add",
                                                                                    "referencedDeclaration": 125,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 285,
                                                                                            "type": "type(library SafeMath)",
                                                                                            "value": "SafeMath"
                                                                                        },
                                                                                        "id": 4346,
                                                                                        "name": "Identifier",
                                                                                        "src": "5326:8:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4347,
                                                                                "name": "MemberAccess",
                                                                                "src": "5326:12:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "amount",
                                                                                    "referencedDeclaration": 3929,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct SecuritiesFactory.securities storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 3947,
                                                                                                            "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                            "value": "securitiesHoldings"
                                                                                                        },
                                                                                                        "id": 4348,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "5339:18:21"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 4316,
                                                                                                            "type": "address",
                                                                                                            "value": "security"
                                                                                                        },
                                                                                                        "id": 4349,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "5358:8:21"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4350,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "5339:28:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4320,
                                                                                                    "type": "address",
                                                                                                    "value": "transferee"
                                                                                                },
                                                                                                "id": 4351,
                                                                                                "name": "Identifier",
                                                                                                "src": "5368:10:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4352,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "5339:40:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4353,
                                                                                "name": "MemberAccess",
                                                                                "src": "5339:47:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4322,
                                                                                    "type": "uint256",
                                                                                    "value": "amount"
                                                                                },
                                                                                "id": 4354,
                                                                                "name": "Identifier",
                                                                                "src": "5388:6:21"
                                                                            }
                                                                        ],
                                                                        "id": 4355,
                                                                        "name": "FunctionCall",
                                                                        "src": "5326:69:21"
                                                                    }
                                                                ],
                                                                "id": 4356,
                                                                "name": "Assignment",
                                                                "src": "5277:118:21"
                                                            }
                                                        ],
                                                        "id": 4357,
                                                        "name": "ExpressionStatement",
                                                        "src": "5277:118:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "amount",
                                                                            "referencedDeclaration": 3929,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4358,
                                                                                                "name": "Identifier",
                                                                                                "src": "5410:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4316,
                                                                                                    "type": "address",
                                                                                                    "value": "security"
                                                                                                },
                                                                                                "id": 4359,
                                                                                                "name": "Identifier",
                                                                                                "src": "5429:8:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4361,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "5410:28:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4318,
                                                                                            "type": "address",
                                                                                            "value": "transferor"
                                                                                        },
                                                                                        "id": 4360,
                                                                                        "name": "Identifier",
                                                                                        "src": "5439:10:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4362,
                                                                                "name": "IndexAccess",
                                                                                "src": "5410:40:21"
                                                                            }
                                                                        ],
                                                                        "id": 4363,
                                                                        "name": "MemberAccess",
                                                                        "src": "5410:47:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "sub",
                                                                                    "referencedDeclaration": 141,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 285,
                                                                                            "type": "type(library SafeMath)",
                                                                                            "value": "SafeMath"
                                                                                        },
                                                                                        "id": 4364,
                                                                                        "name": "Identifier",
                                                                                        "src": "5459:8:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4365,
                                                                                "name": "MemberAccess",
                                                                                "src": "5459:12:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "amount",
                                                                                    "referencedDeclaration": 3929,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct SecuritiesFactory.securities storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 3947,
                                                                                                            "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                            "value": "securitiesHoldings"
                                                                                                        },
                                                                                                        "id": 4366,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "5472:18:21"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 4316,
                                                                                                            "type": "address",
                                                                                                            "value": "security"
                                                                                                        },
                                                                                                        "id": 4367,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "5491:8:21"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4368,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "5472:28:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4318,
                                                                                                    "type": "address",
                                                                                                    "value": "transferor"
                                                                                                },
                                                                                                "id": 4369,
                                                                                                "name": "Identifier",
                                                                                                "src": "5501:10:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4370,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "5472:40:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4371,
                                                                                "name": "MemberAccess",
                                                                                "src": "5472:47:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4322,
                                                                                    "type": "uint256",
                                                                                    "value": "amount"
                                                                                },
                                                                                "id": 4372,
                                                                                "name": "Identifier",
                                                                                "src": "5521:6:21"
                                                                            }
                                                                        ],
                                                                        "id": 4373,
                                                                        "name": "FunctionCall",
                                                                        "src": "5459:69:21"
                                                                    }
                                                                ],
                                                                "id": 4374,
                                                                "name": "Assignment",
                                                                "src": "5410:118:21"
                                                            }
                                                        ],
                                                        "id": 4375,
                                                        "name": "ExpressionStatement",
                                                        "src": "5410:118:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "transferToken",
                                                                            "referencedDeclaration": 6664,
                                                                            "type": "function (address,address,uint256) external"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "contract ISecurity",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6691,
                                                                                            "type": "type(contract ISecurity)",
                                                                                            "value": "ISecurity"
                                                                                        },
                                                                                        "id": 4376,
                                                                                        "name": "Identifier",
                                                                                        "src": "5543:9:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "token",
                                                                                            "referencedDeclaration": 3935,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3947,
                                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                                    "value": "securitiesHoldings"
                                                                                                                },
                                                                                                                "id": 4377,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "5553:18:21"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 4316,
                                                                                                                    "type": "address",
                                                                                                                    "value": "security"
                                                                                                                },
                                                                                                                "id": 4378,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "5572:8:21"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4379,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "5553:28:21"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3956,
                                                                                                                    "type": "mapping(address => address)",
                                                                                                                    "value": "holders"
                                                                                                                },
                                                                                                                "id": 4380,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "5582:7:21"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 4316,
                                                                                                                    "type": "address",
                                                                                                                    "value": "security"
                                                                                                                },
                                                                                                                "id": 4381,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "5590:8:21"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4382,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "5582:17:21"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4383,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "5553:47:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4384,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "5553:53:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4385,
                                                                                "name": "FunctionCall",
                                                                                "src": "5543:64:21"
                                                                            }
                                                                        ],
                                                                        "id": 4386,
                                                                        "name": "MemberAccess",
                                                                        "src": "5543:78:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4318,
                                                                            "type": "address",
                                                                            "value": "transferor"
                                                                        },
                                                                        "id": 4387,
                                                                        "name": "Identifier",
                                                                        "src": "5622:10:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4320,
                                                                            "type": "address",
                                                                            "value": "transferee"
                                                                        },
                                                                        "id": 4388,
                                                                        "name": "Identifier",
                                                                        "src": "5634:10:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4322,
                                                                            "type": "uint256",
                                                                            "value": "amount"
                                                                        },
                                                                        "id": 4389,
                                                                        "name": "Identifier",
                                                                        "src": "5646:6:21"
                                                                    }
                                                                ],
                                                                "id": 4390,
                                                                "name": "FunctionCall",
                                                                "src": "5543:110:21"
                                                            }
                                                        ],
                                                        "id": 4391,
                                                        "name": "ExpressionStatement",
                                                        "src": "5543:110:21"
                                                    }
                                                ],
                                                "id": 4392,
                                                "name": "Block",
                                                "src": "5262:403:21"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "amount",
                                                                            "referencedDeclaration": 3929,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3947,
                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                    "value": "securitiesHoldings"
                                                                                                },
                                                                                                "id": 4393,
                                                                                                "name": "Identifier",
                                                                                                "src": "5686:18:21"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4316,
                                                                                                    "type": "address",
                                                                                                    "value": "security"
                                                                                                },
                                                                                                "id": 4394,
                                                                                                "name": "Identifier",
                                                                                                "src": "5705:8:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4396,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "5686:28:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4320,
                                                                                            "type": "address",
                                                                                            "value": "transferee"
                                                                                        },
                                                                                        "id": 4395,
                                                                                        "name": "Identifier",
                                                                                        "src": "5715:10:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4397,
                                                                                "name": "IndexAccess",
                                                                                "src": "5686:40:21"
                                                                            }
                                                                        ],
                                                                        "id": 4398,
                                                                        "name": "MemberAccess",
                                                                        "src": "5686:47:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4322,
                                                                            "type": "uint256",
                                                                            "value": "amount"
                                                                        },
                                                                        "id": 4399,
                                                                        "name": "Identifier",
                                                                        "src": "5735:6:21"
                                                                    }
                                                                ],
                                                                "id": 4400,
                                                                "name": "Assignment",
                                                                "src": "5686:55:21"
                                                            }
                                                        ],
                                                        "id": 4401,
                                                        "name": "ExpressionStatement",
                                                        "src": "5686:55:21"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "mintToken",
                                                                            "referencedDeclaration": 6671,
                                                                            "type": "function (address,uint256) external"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "contract ISecurity",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6691,
                                                                                            "type": "type(contract ISecurity)",
                                                                                            "value": "ISecurity"
                                                                                        },
                                                                                        "id": 4402,
                                                                                        "name": "Identifier",
                                                                                        "src": "5756:9:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "token",
                                                                                            "referencedDeclaration": 3935,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3947,
                                                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                                                    "value": "securitiesHoldings"
                                                                                                                },
                                                                                                                "id": 4403,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "5766:18:21"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 4316,
                                                                                                                    "type": "address",
                                                                                                                    "value": "security"
                                                                                                                },
                                                                                                                "id": 4404,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "5785:8:21"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4405,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "5766:28:21"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3956,
                                                                                                                    "type": "mapping(address => address)",
                                                                                                                    "value": "holders"
                                                                                                                },
                                                                                                                "id": 4406,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "5795:7:21"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 4316,
                                                                                                                    "type": "address",
                                                                                                                    "value": "security"
                                                                                                                },
                                                                                                                "id": 4407,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "5803:8:21"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4408,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "5795:17:21"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4409,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "5766:47:21"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4410,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "5766:53:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4411,
                                                                                "name": "FunctionCall",
                                                                                "src": "5756:64:21"
                                                                            }
                                                                        ],
                                                                        "id": 4412,
                                                                        "name": "MemberAccess",
                                                                        "src": "5756:74:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4320,
                                                                            "type": "address",
                                                                            "value": "transferee"
                                                                        },
                                                                        "id": 4413,
                                                                        "name": "Identifier",
                                                                        "src": "5831:10:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4322,
                                                                            "type": "uint256",
                                                                            "value": "amount"
                                                                        },
                                                                        "id": 4414,
                                                                        "name": "Identifier",
                                                                        "src": "5843:6:21"
                                                                    }
                                                                ],
                                                                "id": 4415,
                                                                "name": "FunctionCall",
                                                                "src": "5756:94:21"
                                                            }
                                                        ],
                                                        "id": 4416,
                                                        "name": "ExpressionStatement",
                                                        "src": "5756:94:21"
                                                    }
                                                ],
                                                "id": 4417,
                                                "name": "Block",
                                                "src": "5671:191:21"
                                            }
                                        ],
                                        "id": 4418,
                                        "name": "IfStatement",
                                        "src": "5234:628:21"
                                    }
                                ],
                                "id": 4419,
                                "name": "Block",
                                "src": "5149:720:21"
                            }
                        ],
                        "id": 4420,
                        "name": "FunctionDefinition",
                        "src": "5046:823:21"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "checkProduct",
                            "scope": 4561,
                            "stateMutability": "view",
                            "superFunction": 6566,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "issue",
                                            "scope": 4448,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4421,
                                                "name": "ElementaryTypeName",
                                                "src": "5899:7:21"
                                            }
                                        ],
                                        "id": 4422,
                                        "name": "VariableDeclaration",
                                        "src": "5899:13:21"
                                    }
                                ],
                                "id": 4423,
                                "name": "ParameterList",
                                "src": "5898:15:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4448,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 4424,
                                                "name": "ElementaryTypeName",
                                                "src": "5936:4:21"
                                            }
                                        ],
                                        "id": 4425,
                                        "name": "VariableDeclaration",
                                        "src": "5936:4:21"
                                    }
                                ],
                                "id": 4426,
                                "name": "ParameterList",
                                "src": "5935:6:21"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "||",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "!=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3960,
                                                                            "type": "mapping(address => address)",
                                                                            "value": "securityTokens"
                                                                        },
                                                                        "id": 4427,
                                                                        "name": "Identifier",
                                                                        "src": "5955:14:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4422,
                                                                            "type": "address",
                                                                            "value": "issue"
                                                                        },
                                                                        "id": 4428,
                                                                        "name": "Identifier",
                                                                        "src": "5970:5:21"
                                                                    }
                                                                ],
                                                                "id": 4429,
                                                                "name": "IndexAccess",
                                                                "src": "5955:21:21"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "address payable",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                    "typeString": "int_const 0"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "type": "type(address)",
                                                                            "value": "address"
                                                                        },
                                                                        "id": 4430,
                                                                        "name": "ElementaryTypeNameExpression",
                                                                        "src": "5978:7:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "307830",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0x0"
                                                                        },
                                                                        "id": 4431,
                                                                        "name": "Literal",
                                                                        "src": "5986:3:21"
                                                                    }
                                                                ],
                                                                "id": 4432,
                                                                "name": "FunctionCall",
                                                                "src": "5978:12:21"
                                                            }
                                                        ],
                                                        "id": 4433,
                                                        "name": "BinaryOperation",
                                                        "src": "5955:35:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "!=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3956,
                                                                            "type": "mapping(address => address)",
                                                                            "value": "holders"
                                                                        },
                                                                        "id": 4434,
                                                                        "name": "Identifier",
                                                                        "src": "5994:7:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4422,
                                                                            "type": "address",
                                                                            "value": "issue"
                                                                        },
                                                                        "id": 4435,
                                                                        "name": "Identifier",
                                                                        "src": "6002:5:21"
                                                                    }
                                                                ],
                                                                "id": 4436,
                                                                "name": "IndexAccess",
                                                                "src": "5994:14:21"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "address payable",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                    "typeString": "int_const 0"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "type": "type(address)",
                                                                            "value": "address"
                                                                        },
                                                                        "id": 4437,
                                                                        "name": "ElementaryTypeNameExpression",
                                                                        "src": "6010:7:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "307830",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0x0"
                                                                        },
                                                                        "id": 4438,
                                                                        "name": "Literal",
                                                                        "src": "6018:3:21"
                                                                    }
                                                                ],
                                                                "id": 4439,
                                                                "name": "FunctionCall",
                                                                "src": "6010:12:21"
                                                            }
                                                        ],
                                                        "id": 4440,
                                                        "name": "BinaryOperation",
                                                        "src": "5994:28:21"
                                                    }
                                                ],
                                                "id": 4441,
                                                "name": "BinaryOperation",
                                                "src": "5955:67:21"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 4426
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "74727565",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "true"
                                                        },
                                                        "id": 4442,
                                                        "name": "Literal",
                                                        "src": "6044:4:21"
                                                    }
                                                ],
                                                "id": 4443,
                                                "name": "Return",
                                                "src": "6037:11:21"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 4426
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "66616c7365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "false"
                                                        },
                                                        "id": 4444,
                                                        "name": "Literal",
                                                        "src": "6084:5:21"
                                                    }
                                                ],
                                                "id": 4445,
                                                "name": "Return",
                                                "src": "6077:12:21"
                                            }
                                        ],
                                        "id": 4446,
                                        "name": "IfStatement",
                                        "src": "5952:137:21"
                                    }
                                ],
                                "id": 4447,
                                "name": "Block",
                                "src": "5941:156:21"
                            }
                        ],
                        "id": 4448,
                        "name": "FunctionDefinition",
                        "src": "5877:220:21"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "setCustodian",
                            "scope": 4561,
                            "stateMutability": "nonpayable",
                            "superFunction": 6595,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_securityToken",
                                            "scope": 4498,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4449,
                                                "name": "ElementaryTypeName",
                                                "src": "6127:7:21"
                                            }
                                        ],
                                        "id": 4450,
                                        "name": "VariableDeclaration",
                                        "src": "6127:22:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_issuer",
                                            "scope": 4498,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4451,
                                                "name": "ElementaryTypeName",
                                                "src": "6151:7:21"
                                            }
                                        ],
                                        "id": 4452,
                                        "name": "VariableDeclaration",
                                        "src": "6151:15:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_custodian",
                                            "scope": 4498,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4453,
                                                "name": "ElementaryTypeName",
                                                "src": "6168:7:21"
                                            }
                                        ],
                                        "id": 4454,
                                        "name": "VariableDeclaration",
                                        "src": "6168:18:21"
                                    }
                                ],
                                "id": 4455,
                                "name": "ParameterList",
                                "src": "6126:61:21"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 4456,
                                "name": "ParameterList",
                                "src": "6197:0:21"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_33b8ee7c3d3c0738e93bbcb47242ae7c5aac1c8d8780e3734d2b4b5a5ae4b96d",
                                                                    "typeString": "literal_string \"Incorrect custodian set up\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 4457,
                                                        "name": "Identifier",
                                                        "src": "6208:7:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "referencedDeclaration": null,
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9424,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 4458,
                                                                        "name": "Identifier",
                                                                        "src": "6216:3:21"
                                                                    }
                                                                ],
                                                                "id": 4459,
                                                                "name": "MemberAccess",
                                                                "src": "6216:10:21"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "dp",
                                                                    "referencedDeclaration": 3933,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct SecuritiesFactory.securities storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3947,
                                                                                            "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                            "value": "securitiesHoldings"
                                                                                        },
                                                                                        "id": 4460,
                                                                                        "name": "Identifier",
                                                                                        "src": "6228:18:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4450,
                                                                                            "type": "address",
                                                                                            "value": "_securityToken"
                                                                                        },
                                                                                        "id": 4461,
                                                                                        "name": "Identifier",
                                                                                        "src": "6247:14:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4462,
                                                                                "name": "IndexAccess",
                                                                                "src": "6228:34:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3956,
                                                                                            "type": "mapping(address => address)",
                                                                                            "value": "holders"
                                                                                        },
                                                                                        "id": 4463,
                                                                                        "name": "Identifier",
                                                                                        "src": "6263:7:21"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4450,
                                                                                            "type": "address",
                                                                                            "value": "_securityToken"
                                                                                        },
                                                                                        "id": 4464,
                                                                                        "name": "Identifier",
                                                                                        "src": "6271:14:21"
                                                                                    }
                                                                                ],
                                                                                "id": 4465,
                                                                                "name": "IndexAccess",
                                                                                "src": "6263:23:21"
                                                                            }
                                                                        ],
                                                                        "id": 4466,
                                                                        "name": "IndexAccess",
                                                                        "src": "6228:59:21"
                                                                    }
                                                                ],
                                                                "id": 4467,
                                                                "name": "MemberAccess",
                                                                "src": "6228:62:21"
                                                            }
                                                        ],
                                                        "id": 4468,
                                                        "name": "BinaryOperation",
                                                        "src": "6216:74:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "496e636f727265637420637573746f6469616e20736574207570",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Incorrect custodian set up\"",
                                                            "value": "Incorrect custodian set up"
                                                        },
                                                        "id": 4469,
                                                        "name": "Literal",
                                                        "src": "6292:28:21"
                                                    }
                                                ],
                                                "id": 4470,
                                                "name": "FunctionCall",
                                                "src": "6208:113:21"
                                            }
                                        ],
                                        "id": 4471,
                                        "name": "ExpressionStatement",
                                        "src": "6208:113:21"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                4473,
                                                null,
                                                null
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "role",
                                                    "scope": 4497,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bytes32",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 4472,
                                                        "name": "ElementaryTypeName",
                                                        "src": "6333:7:21"
                                                    }
                                                ],
                                                "id": 4473,
                                                "name": "VariableDeclaration",
                                                "src": "6333:12:21"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple(bytes32,bytes32,bytes32)",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getRole",
                                                            "referencedDeclaration": 6731,
                                                            "type": "function (address) view external returns (bytes32,bytes32,bytes32)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "contract VerifiedClient",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6873,
                                                                            "type": "type(contract VerifiedClient)",
                                                                            "value": "VerifiedClient"
                                                                        },
                                                                        "id": 4474,
                                                                        "name": "Identifier",
                                                                        "src": "6352:14:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3964,
                                                                            "type": "address",
                                                                            "value": "client"
                                                                        },
                                                                        "id": 4475,
                                                                        "name": "Identifier",
                                                                        "src": "6367:6:21"
                                                                    }
                                                                ],
                                                                "id": 4476,
                                                                "name": "FunctionCall",
                                                                "src": "6352:22:21"
                                                            }
                                                        ],
                                                        "id": 4477,
                                                        "name": "MemberAccess",
                                                        "src": "6352:30:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4454,
                                                            "type": "address",
                                                            "value": "_custodian"
                                                        },
                                                        "id": 4478,
                                                        "name": "Identifier",
                                                        "src": "6383:10:21"
                                                    }
                                                ],
                                                "id": 4479,
                                                "name": "FunctionCall",
                                                "src": "6352:42:21"
                                            }
                                        ],
                                        "id": 4480,
                                        "name": "VariableDeclarationStatement",
                                        "src": "6332:62:21"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_db5f1471b2771db2e1e51c5d773f906ca4e9ffee0e965657f1af315099b87ddf",
                                                                    "typeString": "literal_string \"Invalid custodian\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 4481,
                                                        "name": "Identifier",
                                                        "src": "6405:7:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4473,
                                                                    "type": "bytes32",
                                                                    "value": "role"
                                                                },
                                                                "id": 4482,
                                                                "name": "Identifier",
                                                                "src": "6413:4:21"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "437573746f6469616e",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"Custodian\"",
                                                                    "value": "Custodian"
                                                                },
                                                                "id": 4483,
                                                                "name": "Literal",
                                                                "src": "6419:11:21"
                                                            }
                                                        ],
                                                        "id": 4484,
                                                        "name": "BinaryOperation",
                                                        "src": "6413:17:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "496e76616c696420637573746f6469616e",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Invalid custodian\"",
                                                            "value": "Invalid custodian"
                                                        },
                                                        "id": 4485,
                                                        "name": "Literal",
                                                        "src": "6432:19:21"
                                                    }
                                                ],
                                                "id": 4486,
                                                "name": "FunctionCall",
                                                "src": "6405:47:21"
                                            }
                                        ],
                                        "id": 4487,
                                        "name": "ExpressionStatement",
                                        "src": "6405:47:21"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "custodian",
                                                            "referencedDeclaration": 3931,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct SecuritiesFactory.securities storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3947,
                                                                                    "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                                    "value": "securitiesHoldings"
                                                                                },
                                                                                "id": 4488,
                                                                                "name": "Identifier",
                                                                                "src": "6463:18:21"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4450,
                                                                                    "type": "address",
                                                                                    "value": "_securityToken"
                                                                                },
                                                                                "id": 4489,
                                                                                "name": "Identifier",
                                                                                "src": "6482:14:21"
                                                                            }
                                                                        ],
                                                                        "id": 4491,
                                                                        "name": "IndexAccess",
                                                                        "src": "6463:34:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4452,
                                                                            "type": "address",
                                                                            "value": "_issuer"
                                                                        },
                                                                        "id": 4490,
                                                                        "name": "Identifier",
                                                                        "src": "6498:7:21"
                                                                    }
                                                                ],
                                                                "id": 4492,
                                                                "name": "IndexAccess",
                                                                "src": "6463:43:21"
                                                            }
                                                        ],
                                                        "id": 4493,
                                                        "name": "MemberAccess",
                                                        "src": "6463:53:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4454,
                                                            "type": "address",
                                                            "value": "_custodian"
                                                        },
                                                        "id": 4494,
                                                        "name": "Identifier",
                                                        "src": "6519:10:21"
                                                    }
                                                ],
                                                "id": 4495,
                                                "name": "Assignment",
                                                "src": "6463:66:21"
                                            }
                                        ],
                                        "id": 4496,
                                        "name": "ExpressionStatement",
                                        "src": "6463:66:21"
                                    }
                                ],
                                "id": 4497,
                                "name": "Block",
                                "src": "6197:340:21"
                            }
                        ],
                        "id": 4498,
                        "name": "FunctionDefinition",
                        "src": "6105:432:21"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getCustodian",
                            "scope": 4561,
                            "stateMutability": "view",
                            "superFunction": 6604,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_securityToken",
                                            "scope": 4515,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4499,
                                                "name": "ElementaryTypeName",
                                                "src": "6567:7:21"
                                            }
                                        ],
                                        "id": 4500,
                                        "name": "VariableDeclaration",
                                        "src": "6567:22:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_issuer",
                                            "scope": 4515,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4501,
                                                "name": "ElementaryTypeName",
                                                "src": "6591:7:21"
                                            }
                                        ],
                                        "id": 4502,
                                        "name": "VariableDeclaration",
                                        "src": "6591:15:21"
                                    }
                                ],
                                "id": 4503,
                                "name": "ParameterList",
                                "src": "6566:41:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4515,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4504,
                                                "name": "ElementaryTypeName",
                                                "src": "6630:7:21"
                                            }
                                        ],
                                        "id": 4505,
                                        "name": "VariableDeclaration",
                                        "src": "6630:7:21"
                                    }
                                ],
                                "id": 4506,
                                "name": "ParameterList",
                                "src": "6629:9:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 4506
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "custodian",
                                                    "referencedDeclaration": 3931,
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "struct SecuritiesFactory.securities storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3947,
                                                                            "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                            "value": "securitiesHoldings"
                                                                        },
                                                                        "id": 4507,
                                                                        "name": "Identifier",
                                                                        "src": "6664:18:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4500,
                                                                            "type": "address",
                                                                            "value": "_securityToken"
                                                                        },
                                                                        "id": 4508,
                                                                        "name": "Identifier",
                                                                        "src": "6683:14:21"
                                                                    }
                                                                ],
                                                                "id": 4509,
                                                                "name": "IndexAccess",
                                                                "src": "6664:34:21"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4502,
                                                                    "type": "address",
                                                                    "value": "_issuer"
                                                                },
                                                                "id": 4510,
                                                                "name": "Identifier",
                                                                "src": "6699:7:21"
                                                            }
                                                        ],
                                                        "id": 4511,
                                                        "name": "IndexAccess",
                                                        "src": "6664:43:21"
                                                    }
                                                ],
                                                "id": 4512,
                                                "name": "MemberAccess",
                                                "src": "6664:53:21"
                                            }
                                        ],
                                        "id": 4513,
                                        "name": "Return",
                                        "src": "6657:60:21"
                                    }
                                ],
                                "id": 4514,
                                "name": "Block",
                                "src": "6638:87:21"
                            }
                        ],
                        "id": 4515,
                        "name": "FunctionDefinition",
                        "src": "6545:180:21"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "restrictCountry",
                            "scope": 4561,
                            "stateMutability": "nonpayable",
                            "superFunction": 6612,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_security",
                                            "scope": 4530,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4516,
                                                "name": "ElementaryTypeName",
                                                "src": "6758:7:21"
                                            }
                                        ],
                                        "id": 4517,
                                        "name": "VariableDeclaration",
                                        "src": "6758:17:21"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_countries",
                                            "scope": 4530,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "bytes32[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "bytes32[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 4518,
                                                        "name": "ElementaryTypeName",
                                                        "src": "6777:7:21"
                                                    }
                                                ],
                                                "id": 4519,
                                                "name": "ArrayTypeName",
                                                "src": "6777:9:21"
                                            }
                                        ],
                                        "id": 4520,
                                        "name": "VariableDeclaration",
                                        "src": "6777:29:21"
                                    }
                                ],
                                "id": 4521,
                                "name": "ParameterList",
                                "src": "6757:50:21"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 4522,
                                "name": "ParameterList",
                                "src": "6816:0:21"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "bytes32[] storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "bytes32[] storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3952,
                                                                    "type": "mapping(address => bytes32[] storage ref)",
                                                                    "value": "countries"
                                                                },
                                                                "id": 4523,
                                                                "name": "Identifier",
                                                                "src": "6827:9:21"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4517,
                                                                    "type": "address",
                                                                    "value": "_security"
                                                                },
                                                                "id": 4524,
                                                                "name": "Identifier",
                                                                "src": "6837:9:21"
                                                            }
                                                        ],
                                                        "id": 4525,
                                                        "name": "IndexAccess",
                                                        "src": "6827:20:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4520,
                                                            "type": "bytes32[] calldata",
                                                            "value": "_countries"
                                                        },
                                                        "id": 4526,
                                                        "name": "Identifier",
                                                        "src": "6850:10:21"
                                                    }
                                                ],
                                                "id": 4527,
                                                "name": "Assignment",
                                                "src": "6827:33:21"
                                            }
                                        ],
                                        "id": 4528,
                                        "name": "ExpressionStatement",
                                        "src": "6827:33:21"
                                    }
                                ],
                                "id": 4529,
                                "name": "Block",
                                "src": "6816:52:21"
                            }
                        ],
                        "id": 4530,
                        "name": "FunctionDefinition",
                        "src": "6733:135:21"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getRestrictedCountries",
                            "scope": 4561,
                            "stateMutability": "view",
                            "superFunction": 6620,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_security",
                                            "scope": 4543,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4531,
                                                "name": "ElementaryTypeName",
                                                "src": "6908:7:21"
                                            }
                                        ],
                                        "id": 4532,
                                        "name": "VariableDeclaration",
                                        "src": "6908:17:21"
                                    }
                                ],
                                "id": 4533,
                                "name": "ParameterList",
                                "src": "6907:19:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4543,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "bytes32[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "bytes32[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 4534,
                                                        "name": "ElementaryTypeName",
                                                        "src": "6949:7:21"
                                                    }
                                                ],
                                                "id": 4535,
                                                "name": "ArrayTypeName",
                                                "src": "6949:9:21"
                                            }
                                        ],
                                        "id": 4536,
                                        "name": "VariableDeclaration",
                                        "src": "6949:16:21"
                                    }
                                ],
                                "id": 4537,
                                "name": "ParameterList",
                                "src": "6948:18:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 4537
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "bytes32[] storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3952,
                                                            "type": "mapping(address => bytes32[] storage ref)",
                                                            "value": "countries"
                                                        },
                                                        "id": 4538,
                                                        "name": "Identifier",
                                                        "src": "6984:9:21"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4532,
                                                            "type": "address",
                                                            "value": "_security"
                                                        },
                                                        "id": 4539,
                                                        "name": "Identifier",
                                                        "src": "6994:9:21"
                                                    }
                                                ],
                                                "id": 4540,
                                                "name": "IndexAccess",
                                                "src": "6984:20:21"
                                            }
                                        ],
                                        "id": 4541,
                                        "name": "Return",
                                        "src": "6977:27:21"
                                    }
                                ],
                                "id": 4542,
                                "name": "Block",
                                "src": "6966:46:21"
                            }
                        ],
                        "id": 4543,
                        "name": "FunctionDefinition",
                        "src": "6876:136:21"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getDP",
                            "scope": 4561,
                            "stateMutability": "view",
                            "superFunction": 6627,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_securityToken",
                                            "scope": 4560,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4544,
                                                "name": "ElementaryTypeName",
                                                "src": "7035:7:21"
                                            }
                                        ],
                                        "id": 4545,
                                        "name": "VariableDeclaration",
                                        "src": "7035:22:21"
                                    }
                                ],
                                "id": 4546,
                                "name": "ParameterList",
                                "src": "7034:24:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4560,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4547,
                                                "name": "ElementaryTypeName",
                                                "src": "7081:7:21"
                                            }
                                        ],
                                        "id": 4548,
                                        "name": "VariableDeclaration",
                                        "src": "7081:7:21"
                                    }
                                ],
                                "id": 4549,
                                "name": "ParameterList",
                                "src": "7080:9:21"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 4549
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "dp",
                                                    "referencedDeclaration": 3933,
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "struct SecuritiesFactory.securities storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "mapping(address => struct SecuritiesFactory.securities storage ref)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3947,
                                                                            "type": "mapping(address => mapping(address => struct SecuritiesFactory.securities storage ref))",
                                                                            "value": "securitiesHoldings"
                                                                        },
                                                                        "id": 4550,
                                                                        "name": "Identifier",
                                                                        "src": "7107:18:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4545,
                                                                            "type": "address",
                                                                            "value": "_securityToken"
                                                                        },
                                                                        "id": 4551,
                                                                        "name": "Identifier",
                                                                        "src": "7126:14:21"
                                                                    }
                                                                ],
                                                                "id": 4552,
                                                                "name": "IndexAccess",
                                                                "src": "7107:34:21"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3956,
                                                                            "type": "mapping(address => address)",
                                                                            "value": "holders"
                                                                        },
                                                                        "id": 4553,
                                                                        "name": "Identifier",
                                                                        "src": "7142:7:21"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4545,
                                                                            "type": "address",
                                                                            "value": "_securityToken"
                                                                        },
                                                                        "id": 4554,
                                                                        "name": "Identifier",
                                                                        "src": "7150:14:21"
                                                                    }
                                                                ],
                                                                "id": 4555,
                                                                "name": "IndexAccess",
                                                                "src": "7142:23:21"
                                                            }
                                                        ],
                                                        "id": 4556,
                                                        "name": "IndexAccess",
                                                        "src": "7107:59:21"
                                                    }
                                                ],
                                                "id": 4557,
                                                "name": "MemberAccess",
                                                "src": "7107:62:21"
                                            }
                                        ],
                                        "id": 4558,
                                        "name": "Return",
                                        "src": "7100:69:21"
                                    }
                                ],
                                "id": 4559,
                                "name": "Block",
                                "src": "7089:88:21"
                            }
                        ],
                        "id": 4560,
                        "name": "FunctionDefinition",
                        "src": "7020:157:21"
                    }
                ],
                "id": 4561,
                "name": "ContractDefinition",
                "src": "607:6579:21"
            }
        ],
        "id": 4562,
        "name": "SourceUnit",
        "src": "75:7111:21"
    },
    "compiler": {
        "name": "solc",
        "version": "0.5.7+commit.6da8b019.Emscripten.clang"
    },
    "networks": {
        "1": {
            "events": {
                "0xac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "productCategory",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restricted",
                            "type": "bool"
                        },
                        {
                            "indexed": false,
                            "name": "issueManager",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restrictions",
                            "type": "bytes32[]"
                        },
                        {
                            "indexed": false,
                            "name": "country",
                            "type": "bytes32"
                        }
                    ],
                    "name": "securitiesAdded",
                    "type": "event"
                },
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x00fffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "name": "proxy",
                            "type": "address"
                        }
                    ],
                    "name": "ProxyCreated",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0xEeDDB589f8EA16f1bCFA1F54F9A20389Ee815884",
            "transactionHash": "0xb5b5a788537bcf4cb9c6577da57fa01f522e8049fe5bbf252c498019a7c01675"
        },
        "100": {
            "events": {
                "0xac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "productCategory",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restricted",
                            "type": "bool"
                        },
                        {
                            "indexed": false,
                            "name": "issueManager",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restrictions",
                            "type": "bytes32[]"
                        },
                        {
                            "indexed": false,
                            "name": "country",
                            "type": "bytes32"
                        }
                    ],
                    "name": "securitiesAdded",
                    "type": "event"
                },
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x00fffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "name": "proxy",
                            "type": "address"
                        }
                    ],
                    "name": "ProxyCreated",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0x9cd9719f897C09D8287A97679f516f6323a54E7d",
            "transactionHash": "0x102c60b6ea8f55f547e4f112e37e9f68a72d0909fa8912ef667cd5180ce1edd5"
        },
        "8453": {
            "events": {
                "0xac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "productCategory",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restricted",
                            "type": "bool"
                        },
                        {
                            "indexed": false,
                            "name": "issueManager",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restrictions",
                            "type": "bytes32[]"
                        },
                        {
                            "indexed": false,
                            "name": "country",
                            "type": "bytes32"
                        }
                    ],
                    "name": "securitiesAdded",
                    "type": "event"
                },
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x00fffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "name": "proxy",
                            "type": "address"
                        }
                    ],
                    "name": "ProxyCreated",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0x4746DD1D30F76a16866EcE1774fd2eE025988D4b",
            "transactionHash": "0xeff6e2285e3342bfcbfd4b4c252ae84cec27606e84e6eb030a628d4d0acef02b"
        },
        "11155111": {
            "events": {
                "0xac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "productCategory",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restricted",
                            "type": "bool"
                        },
                        {
                            "indexed": false,
                            "name": "issueManager",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restrictions",
                            "type": "bytes32[]"
                        },
                        {
                            "indexed": false,
                            "name": "country",
                            "type": "bytes32"
                        }
                    ],
                    "name": "securitiesAdded",
                    "type": "event"
                },
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x00fffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "name": "proxy",
                            "type": "address"
                        }
                    ],
                    "name": "ProxyCreated",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0x7CaB6AA90fD672F6ddBd0B92c0a5428b53ebA414",
            "transactionHash": "0x8c4e8eb5f00128e801e1a8b8fa0707976f886b4cd09101a961064b0e29393d39"
        },
        "1729362618521": {
            "events": {
                "0xac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "productCategory",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restricted",
                            "type": "bool"
                        },
                        {
                            "indexed": false,
                            "name": "issueManager",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restrictions",
                            "type": "bytes32[]"
                        },
                        {
                            "indexed": false,
                            "name": "country",
                            "type": "bytes32"
                        }
                    ],
                    "name": "securitiesAdded",
                    "type": "event"
                },
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x00fffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "name": "proxy",
                            "type": "address"
                        }
                    ],
                    "name": "ProxyCreated",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0x922E696154AFeBfd37612CD687064C8035DA1447",
            "transactionHash": "0x6b29ca6a45b80610f120534bbd878b33b33714c00f44825d658a7a2246e9c0e1"
        },
        "1734842681569": {
            "events": {
                "0xac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "productCategory",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restricted",
                            "type": "bool"
                        },
                        {
                            "indexed": false,
                            "name": "issueManager",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restrictions",
                            "type": "bytes32[]"
                        },
                        {
                            "indexed": false,
                            "name": "country",
                            "type": "bytes32"
                        }
                    ],
                    "name": "securitiesAdded",
                    "type": "event"
                },
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x00fffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "name": "proxy",
                            "type": "address"
                        }
                    ],
                    "name": "ProxyCreated",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0x7a2A31eeCc4BD8835eE8255Fe5E09b9aaA552eA6",
            "transactionHash": "0xf4d848626b7e4a65f2f271c3471a1fb32d398f4ad5e56d63a3b30ca25fac6bb7"
        },
        "1734873379405": {
            "events": {
                "0xac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "productCategory",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restricted",
                            "type": "bool"
                        },
                        {
                            "indexed": false,
                            "name": "issueManager",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restrictions",
                            "type": "bytes32[]"
                        },
                        {
                            "indexed": false,
                            "name": "country",
                            "type": "bytes32"
                        }
                    ],
                    "name": "securitiesAdded",
                    "type": "event"
                },
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x00fffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "name": "proxy",
                            "type": "address"
                        }
                    ],
                    "name": "ProxyCreated",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0xed6D629a963D666428d907C4491F61CD7bd13Ca3",
            "transactionHash": "0x02c7ad39fb017ad7f068d1ec5d7ba8b2e993b64ef6f72fa21da04c58f2eb04b7"
        },
        "1735141964972": {
            "events": {
                "0xac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "productCategory",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restricted",
                            "type": "bool"
                        },
                        {
                            "indexed": false,
                            "name": "issueManager",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restrictions",
                            "type": "bytes32[]"
                        },
                        {
                            "indexed": false,
                            "name": "country",
                            "type": "bytes32"
                        }
                    ],
                    "name": "securitiesAdded",
                    "type": "event"
                },
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x00fffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "name": "proxy",
                            "type": "address"
                        }
                    ],
                    "name": "ProxyCreated",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0xbacF7ab5874033c552b1CB1203bcF9f161f70B06",
            "transactionHash": "0x6cd2702fffa1f63d49ec2c612931beee97c3663c28c2732dfd31cbe448a3dd8c"
        },
        "1735142994788": {
            "events": {
                "0xac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "productCategory",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restricted",
                            "type": "bool"
                        },
                        {
                            "indexed": false,
                            "name": "issueManager",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restrictions",
                            "type": "bytes32[]"
                        },
                        {
                            "indexed": false,
                            "name": "country",
                            "type": "bytes32"
                        }
                    ],
                    "name": "securitiesAdded",
                    "type": "event"
                },
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x00fffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "name": "proxy",
                            "type": "address"
                        }
                    ],
                    "name": "ProxyCreated",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0xBe7D36DfF902CdaAD6d79f2cAaC3596b7175a8c4",
            "transactionHash": "0x2a3293a9ffc677760cad76746b7ca77f314319fd19f38420af728a08cbe4f918"
        },
        "1737639970123": {
            "events": {
                "0xac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "productCategory",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restricted",
                            "type": "bool"
                        },
                        {
                            "indexed": false,
                            "name": "issueManager",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restrictions",
                            "type": "bytes32[]"
                        },
                        {
                            "indexed": false,
                            "name": "country",
                            "type": "bytes32"
                        }
                    ],
                    "name": "securitiesAdded",
                    "type": "event"
                },
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x00fffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "name": "proxy",
                            "type": "address"
                        }
                    ],
                    "name": "ProxyCreated",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0x511af3e2A2a00a12d30BFdeD7879d60A08DC13e1",
            "transactionHash": "0xdaace22499984a11c64cb0d35ccf4a27b435a254b1df5b47c8f84fc3d8bde1db"
        },
        "1737641283957": {
            "events": {
                "0xac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "productCategory",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restricted",
                            "type": "bool"
                        },
                        {
                            "indexed": false,
                            "name": "issueManager",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restrictions",
                            "type": "bytes32[]"
                        },
                        {
                            "indexed": false,
                            "name": "country",
                            "type": "bytes32"
                        }
                    ],
                    "name": "securitiesAdded",
                    "type": "event"
                },
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x00fffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "name": "proxy",
                            "type": "address"
                        }
                    ],
                    "name": "ProxyCreated",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0xCff346523988cfD3E66E14E9e804538c451E78E0",
            "transactionHash": "0xd824ad3004699709aafa59a2f3303ae8c42003c605ffd81ff17ae8d7728c5c72"
        },
        "1737643787782": {
            "events": {
                "0xac6540763c83abc16ddc03f9bba51ea8af0d61a3f55e915bfcd8717113027bdc": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "productCategory",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restricted",
                            "type": "bool"
                        },
                        {
                            "indexed": false,
                            "name": "issueManager",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "restrictions",
                            "type": "bytes32[]"
                        },
                        {
                            "indexed": false,
                            "name": "country",
                            "type": "bytes32"
                        }
                    ],
                    "name": "securitiesAdded",
                    "type": "event"
                },
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x00fffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "name": "proxy",
                            "type": "address"
                        }
                    ],
                    "name": "ProxyCreated",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0xC7cF90B3d67cbeD2cDE599D850152cAD4E9ED4A5",
            "transactionHash": "0x993f54c4b13c4ee92503157cb89550b2a54d521526b083c2b9805e2d0cdc66df"
        }
    },
    "schemaVersion": "3.4.3",
    "updatedAt": "2025-02-27T16:47:01.942Z",
    "networkType": "ethereum",
    "devdoc": {
        "methods": {
            "initialize(address)": {
                "details": "Initializes the contract setting the deployer as the initial owner."
            },
            "isOwner()": {
                "details": "Returns true if the caller is the current owner."
            },
            "owner()": {
                "details": "Returns the address of the current owner."
            },
            "renounceOwnership()": {
                "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner.     * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
            },
            "transferOwnership(address)": {
                "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
            }
        }
    },
    "userdoc": {
        "methods": {}
    }
}
