{
  "contractName": "SecurityTokenRegistry",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "registrationFee",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "tickerRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "protocolVersion",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "polyToken",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "protocolVersionST",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "polymathRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_tokenContract",
          "type": "address"
        }
      ],
      "name": "reclaimERC20",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "moduleRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "securityTokenRegistry",
      "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"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "updateFromRegistry",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_polymathRegistry",
          "type": "address"
        },
        {
          "name": "_stVersionProxy",
          "type": "address"
        },
        {
          "name": "_registrationFee",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_oldFee",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "_newFee",
          "type": "uint256"
        }
      ],
      "name": "LogChangePolyRegistrationFee",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_ticker",
          "type": "string"
        },
        {
          "indexed": true,
          "name": "_securityTokenAddress",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "LogNewSecurityToken",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_name",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "_symbol",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "_securityToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_addedAt",
          "type": "uint256"
        }
      ],
      "name": "LogAddCustomSecurityToken",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_currency",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "_denominatedCurrency",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "_newOracle",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_oldOracle",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_now",
          "type": "uint256"
        }
      ],
      "name": "LogChangeOracle",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipRenounced",
      "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": "_timestammp",
          "type": "uint256"
        }
      ],
      "name": "Pause",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "Unpause",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_name",
          "type": "string"
        },
        {
          "name": "_symbol",
          "type": "string"
        },
        {
          "name": "_tokenDetails",
          "type": "string"
        },
        {
          "name": "_divisible",
          "type": "bool"
        }
      ],
      "name": "generateSecurityToken",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_name",
          "type": "string"
        },
        {
          "name": "_symbol",
          "type": "string"
        },
        {
          "name": "_owner",
          "type": "address"
        },
        {
          "name": "_securityToken",
          "type": "address"
        },
        {
          "name": "_tokenDetails",
          "type": "string"
        },
        {
          "name": "_swarmHash",
          "type": "bytes32"
        }
      ],
      "name": "addCustomSecurityToken",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_stVersionProxyAddress",
          "type": "address"
        },
        {
          "name": "_version",
          "type": "bytes32"
        }
      ],
      "name": "setProtocolVersion",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_symbol",
          "type": "string"
        }
      ],
      "name": "getSecurityTokenAddress",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_securityToken",
          "type": "address"
        }
      ],
      "name": "getSecurityTokenData",
      "outputs": [
        {
          "name": "",
          "type": "string"
        },
        {
          "name": "",
          "type": "address"
        },
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_securityToken",
          "type": "address"
        }
      ],
      "name": "isSecurityToken",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_registrationFee",
          "type": "uint256"
        }
      ],
      "name": "changePolyRegistrationFee",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_currency",
          "type": "bytes32"
        },
        {
          "name": "_denominatedCurrency",
          "type": "bytes32"
        },
        {
          "name": "_oracle",
          "type": "address"
        }
      ],
      "name": "changeOracle",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_currency",
          "type": "bytes32"
        },
        {
          "name": "_denominatedCurrency",
          "type": "bytes32"
        }
      ],
      "name": "getOracle",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040527f302e302e310000000000000000000000000000000000000000000000000000006000556005805460ff1916905534801561003e57600080fd5b50604051606080620024028339810160409081528151602083015191909201516005805461010060a860020a031916336101000217905582600160a060020a038116151561008b57600080fd5b60068054600160a060020a031916600160a060020a0392909216919091179055600b8190556100e3827f302e302e310000000000000000000000000000000000000000000000000000006401000000006100eb810204565b505050610138565b6005546101009004600160a060020a0316331461010757600080fd5b60008181559081526001602052604090208054600160a060020a031916600160a060020a0392909216919091179055565b6122ba80620001486000396000f3006080604052600436106101485763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095408a7811461014d57806314c44e09146102415780631dd14317146102685780632a8581261461028c5780632ae9c600146102bd5780633f4ba83a146102d25780635b30717c146102e75780635c975abb146102ff5780636faa22a514610328578063715018a61461033d57806375f9f5971461035257806377282b701461036a5780637ecdd2f51461037f5780638456cb59146103a65780638905fd4f146103bb5780638da5cb5b146103dc5780638f9bbf16146103f1578063b95459e414610509578063c37792b51461051e578063ce4dbdff146105f7578063d300a9681461060c578063e7e9e1cc1461062d578063f2fde38b14610648578063f433262f14610669578063fb621f141461067e575b600080fd5b34801561015957600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261023f94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020888301358a018035601f8101839004830284018301909452838352979a8935600160a060020a039081169b8b8401359091169a9199909850606090910196509194509081019250819084018382808284375094975050933594506106d79350505050565b005b34801561024d57600080fd5b50610256610c90565b60408051918252519081900360200190f35b34801561027457600080fd5b5061023f600160a060020a0360043516602435610c96565b34801561029857600080fd5b506102a1610ce3565b60408051600160a060020a039092168252519081900360200190f35b3480156102c957600080fd5b50610256610cf2565b3480156102de57600080fd5b5061023f610cf8565b3480156102f357600080fd5b5061023f600435610d1e565b34801561030b57600080fd5b50610314610d8b565b604080519115158252519081900360200190f35b34801561033457600080fd5b506102a1610d94565b34801561034957600080fd5b5061023f610da3565b34801561035e57600080fd5b506102a1600435610e1b565b34801561037657600080fd5b506102a1610e36565b34801561038b57600080fd5b5061023f600435602435600160a060020a0360443516610e45565b3480156103b257600080fd5b5061023f610f06565b3480156103c757600080fd5b5061023f600160a060020a0360043516610f2a565b3480156103e857600080fd5b506102a16110a3565b3480156103fd57600080fd5b50610412600160a060020a03600435166110b7565b604051808060200184600160a060020a0316600160a060020a0316815260200180602001838103835286818151815260200191508051906020019080838360005b8381101561046b578181015183820152602001610453565b50505050905090810190601f1680156104985780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156104cb5781810151838201526020016104b3565b50505050905090810190601f1680156104f85780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561051557600080fd5b506102a161128e565b34801561052a57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261023f94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975050505091351515925061129d915050565b34801561060357600080fd5b506102a1611a25565b34801561061857600080fd5b50610314600160a060020a0360043516611a34565b34801561063957600080fd5b506102a1600435602435611ae7565b34801561065457600080fd5b5061023f600160a060020a0360043516611b0d565b34801561067557600080fd5b5061023f611b35565b34801561068a57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102a1943694929360249392840191908190840183828082843750949750611e519650505050505050565b6005546060906101009004600160a060020a031633146106f657600080fd5b60008751118015610708575060008651115b1515610784576040805160e560020a62461bcd02815260206004820152603660248201527f4e616d6520616e642053796d626f6c20737472696e67206c656e67746820736860448201527f6f756c642062652067726561746572207468616e203000000000000000000000606482015290519081900360840190fd5b61078d86611ed0565b9050600160a060020a0384161580159061081c57506000600160a060020a03166003826040518082805190602001908083835b602083106107df5780518252601f1990920191602091820191016107c0565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a0316929092149150505b15156108be576040805160e560020a62461bcd02815260206004820152605160248201527f53796d626f6c20697320616c72656164792061742074686520706f6c796d617460448201527f68206e6574776f726b206f7220656e746572656420736563757269747920746f60648201527f6b656e2061646472657373206973203078000000000000000000000000000000608482015290519081900360a40190fd5b600160a060020a03851615156108d357600080fd5b6009546040517fce9af2b9000000000000000000000000000000000000000000000000000000008152600160a060020a03878116602483015260648201859052608060048301908152845160848401528451919093169263ce9af2b99285928a928d9289928291604481019160a490910190602089019080838360005b83811015610968578181015183820152602001610950565b50505050905090810190601f1680156109955780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156109c85781810151838201526020016109b0565b50505050905090810190601f1680156109f55780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015610a1857600080fd5b505af1158015610a2c573d6000803e3d6000fd5b505050506040513d6020811015610a4257600080fd5b505115610a99576040805160e560020a62461bcd02815260206004820152601e60248201527f547279696e6720746f20757365206e6f6e2d76616c69642073796d626f6c0000604482015290519081900360640190fd5b836003826040518082805190602001908083835b60208310610acc5780518252601f199092019160209182019101610aad565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208054600160a060020a031916600160a060020a039788161790558481018152868552848201899052948916600090815260028252949094208351805194959194610b4894508593509101906121f3565b506020828101518051610b6192600185019201906121f3565b509050507f64b91bbee335851d4f490bc9a6d0a60e9da265c67d0258e9f300b8a933ecb3408782864260405180806020018060200185600160a060020a0316600160a060020a03168152602001848152602001838103835287818151815260200191508051906020019080838360005b83811015610be9578181015183820152602001610bd1565b50505050905090810190601f168015610c165780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b83811015610c49578181015183820152602001610c31565b50505050905090810190601f168015610c765780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a150505050505050565b600b5481565b6005546101009004600160a060020a03163314610cb257600080fd5b60008181559081526001602052604090208054600160a060020a031916600160a060020a0392909216919091179055565b600954600160a060020a031681565b60005481565b6005546101009004600160a060020a03163314610d1457600080fd5b610d1c612032565b565b6005546101009004600160a060020a03163314610d3a57600080fd5b600b54811415610d4957600080fd5b600b54604080519182526020820183905280517f57306ced45fbc41943378e67622b8fb30ae72b8af9f874f08a4ad963d0c144989281900390910190a1600b55565b60055460ff1681565b600a54600160a060020a031681565b6005546101009004600160a060020a03163314610dbf57600080fd5b600554604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805474ffffffffffffffffffffffffffffffffffffffff0019169055565b600160205260009081526040902054600160a060020a031681565b600654600160a060020a031681565b6005546101009004600160a060020a03163314610e6157600080fd5b6000838152600460209081526040808320858452825291829020548251868152918201859052600160a060020a038085168385015216606082015242608082015290517fa0029dce0f74d5868196d5938d257f8203acf6b961ba6fbb914212ccd96ed7409181900360a00190a1600092835260046020908152604080852093855292905291208054600160a060020a031916600160a060020a03909216919091179055565b6005546101009004600160a060020a03163314610f2257600080fd5b610d1c6120cd565b60055460009081906101009004600160a060020a03163314610f4b57600080fd5b600160a060020a0383161515610f6057600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015610fc457600080fd5b505af1158015610fd8573d6000803e3d6000fd5b505050506040513d6020811015610fee57600080fd5b5051600554604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152610100909204600160a060020a03908116600484015260248301849052905192935084169163a9059cbb916044808201926020929091908290030181600087803b15801561106757600080fd5b505af115801561107b573d6000803e3d6000fd5b505050506040513d602081101561109157600080fd5b5051151561109e57600080fd5b505050565b6005546101009004600160a060020a031681565b600160a060020a038116600081815260026020908152604080832081517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529151606095869492939092638da5cb5b9260048084019382900301818987803b15801561112357600080fd5b505af1158015611137573d6000803e3d6000fd5b505050506040513d602081101561114d57600080fd5b5051600160a060020a03861660009081526002602081815260409283902085548451600180831615610100026000190190921694909404601f8101849004840285018401909552848452019285918301828280156111ec5780601f106111c1576101008083540402835291602001916111ec565b820191906000526020600020905b8154815290600101906020018083116111cf57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529598508694509250840190508282801561127a5780601f1061124f5761010080835404028352916020019161127a565b820191906000526020600020905b81548152906001019060200180831161125d57829003601f168201915b505050505090509250925092509193909250565b600754600160a060020a031681565b60055460609060009060ff16156112fe576040805160e560020a62461bcd02815260206004820152601260248201527f436f6e7472616374206973207061757365640000000000000000000000000000604482015290519081900360640190fd5b60008651118015611310575060008551115b151561138c576040805160e560020a62461bcd02815260206004820152603660248201527f4e616d6520616e642053796d626f6c20737472696e67206c656e67746820736860448201527f6f756c642062652067726561746572207468616e203000000000000000000000606482015290519081900360840190fd5b6009546040517fac1e765b0000000000000000000000000000000000000000000000000000000081523360248201819052606060048301908152885160648401528851600160a060020a039094169363ac1e765b938a93928c9290918291604482019160840190602088019080838360005b838110156114165781810151838201526020016113fe565b50505050905090810190601f1680156114435780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561147657818101518382015260200161145e565b50505050905090810190601f1680156114a35780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156114c557600080fd5b505af11580156114d9573d6000803e3d6000fd5b505050506040513d60208110156114ef57600080fd5b50511515611547576040805160e560020a62461bcd02815260206004820152601e60248201527f547279696e6720746f20757365206e6f6e2d76616c69642073796d626f6c0000604482015290519081900360640190fd5b6000600b54111561169657600a54600b54604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481019290925251600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b1580156115c857600080fd5b505af11580156115dc573d6000803e3d6000fd5b505050506040513d60208110156115f257600080fd5b50511515611696576040805160e560020a62461bcd02815260206004820152604260248201527f4661696c6564207472616e7366657246726f6d2062656361757365206f66207360448201527f7566666963656e7420416c6c6f77616e6365206973206e6f742070726f76696460648201527f6564000000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b61169f85611ed0565b6000805481526001602090815260408083205460065491517fc85fd4f800000000000000000000000000000000000000000000000000000000815260126044820181905233608483018190528a151560a4840152600160a060020a0394851660c4840181905260e0600485019081528f5160e48601528f51999b50959094169763c85fd4f8978f978c9794968f9694958f959194909384936024840193606481019361010490910192918e01918190849084905b8381101561176b578181015183820152602001611753565b50505050905090810190601f1680156117985780820380516001836020036101000a031916815260200191505b5084810383528a5181528a516020918201918c019080838360005b838110156117cb5781810151838201526020016117b3565b50505050905090810190601f1680156117f85780820380516001836020036101000a031916815260200191505b5084810382528851815288516020918201918a019080838360005b8381101561182b578181015183820152602001611813565b50505050905090810190601f1680156118585780820380516001836020036101000a031916815260200191505b509a5050505050505050505050602060405180830381600087803b15801561187f57600080fd5b505af1158015611893573d6000803e3d6000fd5b505050506040513d60208110156118a957600080fd5b50516040805180820182528481526020818101889052600160a060020a0384166000908152600282529290922081518051949550919390926118ef9284929101906121f3565b50602082810151805161190892600185019201906121f3565b50905050806003836040518082805190602001908083835b6020831061193f5780518252601f199092019160209182019101611920565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208054600160a060020a031916600160a060020a03978816179055818552875185830152875133968816957f2510d802a0818e71139a7680a6388bcffcd3fa686e02a0f7319488c5bdb38fcb95508994509283928301919085019080838360005b838110156119e35781810151838201526020016119cb565b50505050905090810190601f168015611a105780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050565b600854600160a060020a031681565b60408051600160a060020a038316600090815260026020819052928120805491937fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470939192829184916101006001821615026000190116048015611acf5780601f10611aad576101008083540402835291820191611acf565b820191906000526020600020905b815481529060010190602001808311611abb575b50506040519081900390209290921415949350505050565b6000918252600460209081526040808420928452919052902054600160a060020a031690565b6005546101009004600160a060020a03163314611b2957600080fd5b611b328161216a565b50565b6005546101009004600160a060020a03163314611b5157600080fd5b6006546040805160e060020a63bf40fac1028152602060048201819052600e60248301527f4d6f64756c65526567697374727900000000000000000000000000000000000060448301529151600160a060020a039093169263bf40fac1926064808401939192918290030181600087803b158015611bce57600080fd5b505af1158015611be2573d6000803e3d6000fd5b505050506040513d6020811015611bf857600080fd5b505160078054600160a060020a031916600160a060020a039283161790556006546040805160e060020a63bf40fac1028152602060048201819052601560248301527f5365637572697479546f6b656e5265676973747279000000000000000000000060448301529151929093169263bf40fac192606480830193928290030181600087803b158015611c8a57600080fd5b505af1158015611c9e573d6000803e3d6000fd5b505050506040513d6020811015611cb457600080fd5b505160088054600160a060020a031916600160a060020a039283161790556006546040805160e060020a63bf40fac1028152602060048201819052600e60248301527f5469636b6572526567697374727900000000000000000000000000000000000060448301529151929093169263bf40fac192606480830193928290030181600087803b158015611d4657600080fd5b505af1158015611d5a573d6000803e3d6000fd5b505050506040513d6020811015611d7057600080fd5b505160098054600160a060020a031916600160a060020a039283161781556006546040805160e060020a63bf40fac102815260206004820181905260248201949094527f506f6c79546f6b656e000000000000000000000000000000000000000000000060448201529051919093169263bf40fac19260648083019391928290030181600087803b158015611e0457600080fd5b505af1158015611e18573d6000803e3d6000fd5b505050506040513d6020811015611e2e57600080fd5b5051600a8054600160a060020a031916600160a060020a03909216919091179055565b60006060611e5e83611ed0565b90506003816040518082805190602001908083835b60208310611e925780518252601f199092019160209182019101611e73565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a031695945050505050565b6060816000805b8251821015612029578282815181101515611eee57fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190040290507f61000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610801590611faf57507f7a000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821611155b15611fdf57601f197f01000000000000000000000000000000000000000000000000000000000000009182900401025b808383815181101515611fee57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190910190611ed7565b50909392505050565b60055460ff16151561208e576040805160e560020a62461bcd02815260206004820152601660248201527f436f6e7472616374206973206e6f742070617573656400000000000000000000604482015290519081900360640190fd5b6005805460ff191690556040805142815290517faaa520fdd7d2c83061d632fa017b0432407e798818af63ea908589fceda39ab79181900360200190a1565b60055460ff1615612128576040805160e560020a62461bcd02815260206004820152601260248201527f436f6e7472616374206973207061757365640000000000000000000000000000604482015290519081900360640190fd5b6005805460ff191660011790556040805142815290517f68b095021b1f40fe513109f513c66692f0b3219aee674a69f4efc57badb8201d9181900360200190a1565b600160a060020a038116151561217f57600080fd5b600554604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061223457805160ff1916838001178555612261565b82800160010185558215612261579182015b82811115612261578251825591602001919060010190612246565b5061226d929150612271565b5090565b61228b91905b8082111561226d5760008155600101612277565b905600a165627a7a72305820f236dfa3fe2289e7af8e04d3868aef9fe97a51e42b1d39a8fc3caaae56bd89340029",
  "deployedBytecode": "0x6080604052600436106101485763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095408a7811461014d57806314c44e09146102415780631dd14317146102685780632a8581261461028c5780632ae9c600146102bd5780633f4ba83a146102d25780635b30717c146102e75780635c975abb146102ff5780636faa22a514610328578063715018a61461033d57806375f9f5971461035257806377282b701461036a5780637ecdd2f51461037f5780638456cb59146103a65780638905fd4f146103bb5780638da5cb5b146103dc5780638f9bbf16146103f1578063b95459e414610509578063c37792b51461051e578063ce4dbdff146105f7578063d300a9681461060c578063e7e9e1cc1461062d578063f2fde38b14610648578063f433262f14610669578063fb621f141461067e575b600080fd5b34801561015957600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261023f94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020888301358a018035601f8101839004830284018301909452838352979a8935600160a060020a039081169b8b8401359091169a9199909850606090910196509194509081019250819084018382808284375094975050933594506106d79350505050565b005b34801561024d57600080fd5b50610256610c90565b60408051918252519081900360200190f35b34801561027457600080fd5b5061023f600160a060020a0360043516602435610c96565b34801561029857600080fd5b506102a1610ce3565b60408051600160a060020a039092168252519081900360200190f35b3480156102c957600080fd5b50610256610cf2565b3480156102de57600080fd5b5061023f610cf8565b3480156102f357600080fd5b5061023f600435610d1e565b34801561030b57600080fd5b50610314610d8b565b604080519115158252519081900360200190f35b34801561033457600080fd5b506102a1610d94565b34801561034957600080fd5b5061023f610da3565b34801561035e57600080fd5b506102a1600435610e1b565b34801561037657600080fd5b506102a1610e36565b34801561038b57600080fd5b5061023f600435602435600160a060020a0360443516610e45565b3480156103b257600080fd5b5061023f610f06565b3480156103c757600080fd5b5061023f600160a060020a0360043516610f2a565b3480156103e857600080fd5b506102a16110a3565b3480156103fd57600080fd5b50610412600160a060020a03600435166110b7565b604051808060200184600160a060020a0316600160a060020a0316815260200180602001838103835286818151815260200191508051906020019080838360005b8381101561046b578181015183820152602001610453565b50505050905090810190601f1680156104985780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156104cb5781810151838201526020016104b3565b50505050905090810190601f1680156104f85780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561051557600080fd5b506102a161128e565b34801561052a57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261023f94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975050505091351515925061129d915050565b34801561060357600080fd5b506102a1611a25565b34801561061857600080fd5b50610314600160a060020a0360043516611a34565b34801561063957600080fd5b506102a1600435602435611ae7565b34801561065457600080fd5b5061023f600160a060020a0360043516611b0d565b34801561067557600080fd5b5061023f611b35565b34801561068a57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102a1943694929360249392840191908190840183828082843750949750611e519650505050505050565b6005546060906101009004600160a060020a031633146106f657600080fd5b60008751118015610708575060008651115b1515610784576040805160e560020a62461bcd02815260206004820152603660248201527f4e616d6520616e642053796d626f6c20737472696e67206c656e67746820736860448201527f6f756c642062652067726561746572207468616e203000000000000000000000606482015290519081900360840190fd5b61078d86611ed0565b9050600160a060020a0384161580159061081c57506000600160a060020a03166003826040518082805190602001908083835b602083106107df5780518252601f1990920191602091820191016107c0565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a0316929092149150505b15156108be576040805160e560020a62461bcd02815260206004820152605160248201527f53796d626f6c20697320616c72656164792061742074686520706f6c796d617460448201527f68206e6574776f726b206f7220656e746572656420736563757269747920746f60648201527f6b656e2061646472657373206973203078000000000000000000000000000000608482015290519081900360a40190fd5b600160a060020a03851615156108d357600080fd5b6009546040517fce9af2b9000000000000000000000000000000000000000000000000000000008152600160a060020a03878116602483015260648201859052608060048301908152845160848401528451919093169263ce9af2b99285928a928d9289928291604481019160a490910190602089019080838360005b83811015610968578181015183820152602001610950565b50505050905090810190601f1680156109955780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156109c85781810151838201526020016109b0565b50505050905090810190601f1680156109f55780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015610a1857600080fd5b505af1158015610a2c573d6000803e3d6000fd5b505050506040513d6020811015610a4257600080fd5b505115610a99576040805160e560020a62461bcd02815260206004820152601e60248201527f547279696e6720746f20757365206e6f6e2d76616c69642073796d626f6c0000604482015290519081900360640190fd5b836003826040518082805190602001908083835b60208310610acc5780518252601f199092019160209182019101610aad565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208054600160a060020a031916600160a060020a039788161790558481018152868552848201899052948916600090815260028252949094208351805194959194610b4894508593509101906121f3565b506020828101518051610b6192600185019201906121f3565b509050507f64b91bbee335851d4f490bc9a6d0a60e9da265c67d0258e9f300b8a933ecb3408782864260405180806020018060200185600160a060020a0316600160a060020a03168152602001848152602001838103835287818151815260200191508051906020019080838360005b83811015610be9578181015183820152602001610bd1565b50505050905090810190601f168015610c165780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b83811015610c49578181015183820152602001610c31565b50505050905090810190601f168015610c765780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a150505050505050565b600b5481565b6005546101009004600160a060020a03163314610cb257600080fd5b60008181559081526001602052604090208054600160a060020a031916600160a060020a0392909216919091179055565b600954600160a060020a031681565b60005481565b6005546101009004600160a060020a03163314610d1457600080fd5b610d1c612032565b565b6005546101009004600160a060020a03163314610d3a57600080fd5b600b54811415610d4957600080fd5b600b54604080519182526020820183905280517f57306ced45fbc41943378e67622b8fb30ae72b8af9f874f08a4ad963d0c144989281900390910190a1600b55565b60055460ff1681565b600a54600160a060020a031681565b6005546101009004600160a060020a03163314610dbf57600080fd5b600554604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805474ffffffffffffffffffffffffffffffffffffffff0019169055565b600160205260009081526040902054600160a060020a031681565b600654600160a060020a031681565b6005546101009004600160a060020a03163314610e6157600080fd5b6000838152600460209081526040808320858452825291829020548251868152918201859052600160a060020a038085168385015216606082015242608082015290517fa0029dce0f74d5868196d5938d257f8203acf6b961ba6fbb914212ccd96ed7409181900360a00190a1600092835260046020908152604080852093855292905291208054600160a060020a031916600160a060020a03909216919091179055565b6005546101009004600160a060020a03163314610f2257600080fd5b610d1c6120cd565b60055460009081906101009004600160a060020a03163314610f4b57600080fd5b600160a060020a0383161515610f6057600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015610fc457600080fd5b505af1158015610fd8573d6000803e3d6000fd5b505050506040513d6020811015610fee57600080fd5b5051600554604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152610100909204600160a060020a03908116600484015260248301849052905192935084169163a9059cbb916044808201926020929091908290030181600087803b15801561106757600080fd5b505af115801561107b573d6000803e3d6000fd5b505050506040513d602081101561109157600080fd5b5051151561109e57600080fd5b505050565b6005546101009004600160a060020a031681565b600160a060020a038116600081815260026020908152604080832081517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529151606095869492939092638da5cb5b9260048084019382900301818987803b15801561112357600080fd5b505af1158015611137573d6000803e3d6000fd5b505050506040513d602081101561114d57600080fd5b5051600160a060020a03861660009081526002602081815260409283902085548451600180831615610100026000190190921694909404601f8101849004840285018401909552848452019285918301828280156111ec5780601f106111c1576101008083540402835291602001916111ec565b820191906000526020600020905b8154815290600101906020018083116111cf57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529598508694509250840190508282801561127a5780601f1061124f5761010080835404028352916020019161127a565b820191906000526020600020905b81548152906001019060200180831161125d57829003601f168201915b505050505090509250925092509193909250565b600754600160a060020a031681565b60055460609060009060ff16156112fe576040805160e560020a62461bcd02815260206004820152601260248201527f436f6e7472616374206973207061757365640000000000000000000000000000604482015290519081900360640190fd5b60008651118015611310575060008551115b151561138c576040805160e560020a62461bcd02815260206004820152603660248201527f4e616d6520616e642053796d626f6c20737472696e67206c656e67746820736860448201527f6f756c642062652067726561746572207468616e203000000000000000000000606482015290519081900360840190fd5b6009546040517fac1e765b0000000000000000000000000000000000000000000000000000000081523360248201819052606060048301908152885160648401528851600160a060020a039094169363ac1e765b938a93928c9290918291604482019160840190602088019080838360005b838110156114165781810151838201526020016113fe565b50505050905090810190601f1680156114435780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561147657818101518382015260200161145e565b50505050905090810190601f1680156114a35780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156114c557600080fd5b505af11580156114d9573d6000803e3d6000fd5b505050506040513d60208110156114ef57600080fd5b50511515611547576040805160e560020a62461bcd02815260206004820152601e60248201527f547279696e6720746f20757365206e6f6e2d76616c69642073796d626f6c0000604482015290519081900360640190fd5b6000600b54111561169657600a54600b54604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481019290925251600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b1580156115c857600080fd5b505af11580156115dc573d6000803e3d6000fd5b505050506040513d60208110156115f257600080fd5b50511515611696576040805160e560020a62461bcd02815260206004820152604260248201527f4661696c6564207472616e7366657246726f6d2062656361757365206f66207360448201527f7566666963656e7420416c6c6f77616e6365206973206e6f742070726f76696460648201527f6564000000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b61169f85611ed0565b6000805481526001602090815260408083205460065491517fc85fd4f800000000000000000000000000000000000000000000000000000000815260126044820181905233608483018190528a151560a4840152600160a060020a0394851660c4840181905260e0600485019081528f5160e48601528f51999b50959094169763c85fd4f8978f978c9794968f9694958f959194909384936024840193606481019361010490910192918e01918190849084905b8381101561176b578181015183820152602001611753565b50505050905090810190601f1680156117985780820380516001836020036101000a031916815260200191505b5084810383528a5181528a516020918201918c019080838360005b838110156117cb5781810151838201526020016117b3565b50505050905090810190601f1680156117f85780820380516001836020036101000a031916815260200191505b5084810382528851815288516020918201918a019080838360005b8381101561182b578181015183820152602001611813565b50505050905090810190601f1680156118585780820380516001836020036101000a031916815260200191505b509a5050505050505050505050602060405180830381600087803b15801561187f57600080fd5b505af1158015611893573d6000803e3d6000fd5b505050506040513d60208110156118a957600080fd5b50516040805180820182528481526020818101889052600160a060020a0384166000908152600282529290922081518051949550919390926118ef9284929101906121f3565b50602082810151805161190892600185019201906121f3565b50905050806003836040518082805190602001908083835b6020831061193f5780518252601f199092019160209182019101611920565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208054600160a060020a031916600160a060020a03978816179055818552875185830152875133968816957f2510d802a0818e71139a7680a6388bcffcd3fa686e02a0f7319488c5bdb38fcb95508994509283928301919085019080838360005b838110156119e35781810151838201526020016119cb565b50505050905090810190601f168015611a105780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050565b600854600160a060020a031681565b60408051600160a060020a038316600090815260026020819052928120805491937fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470939192829184916101006001821615026000190116048015611acf5780601f10611aad576101008083540402835291820191611acf565b820191906000526020600020905b815481529060010190602001808311611abb575b50506040519081900390209290921415949350505050565b6000918252600460209081526040808420928452919052902054600160a060020a031690565b6005546101009004600160a060020a03163314611b2957600080fd5b611b328161216a565b50565b6005546101009004600160a060020a03163314611b5157600080fd5b6006546040805160e060020a63bf40fac1028152602060048201819052600e60248301527f4d6f64756c65526567697374727900000000000000000000000000000000000060448301529151600160a060020a039093169263bf40fac1926064808401939192918290030181600087803b158015611bce57600080fd5b505af1158015611be2573d6000803e3d6000fd5b505050506040513d6020811015611bf857600080fd5b505160078054600160a060020a031916600160a060020a039283161790556006546040805160e060020a63bf40fac1028152602060048201819052601560248301527f5365637572697479546f6b656e5265676973747279000000000000000000000060448301529151929093169263bf40fac192606480830193928290030181600087803b158015611c8a57600080fd5b505af1158015611c9e573d6000803e3d6000fd5b505050506040513d6020811015611cb457600080fd5b505160088054600160a060020a031916600160a060020a039283161790556006546040805160e060020a63bf40fac1028152602060048201819052600e60248301527f5469636b6572526567697374727900000000000000000000000000000000000060448301529151929093169263bf40fac192606480830193928290030181600087803b158015611d4657600080fd5b505af1158015611d5a573d6000803e3d6000fd5b505050506040513d6020811015611d7057600080fd5b505160098054600160a060020a031916600160a060020a039283161781556006546040805160e060020a63bf40fac102815260206004820181905260248201949094527f506f6c79546f6b656e000000000000000000000000000000000000000000000060448201529051919093169263bf40fac19260648083019391928290030181600087803b158015611e0457600080fd5b505af1158015611e18573d6000803e3d6000fd5b505050506040513d6020811015611e2e57600080fd5b5051600a8054600160a060020a031916600160a060020a03909216919091179055565b60006060611e5e83611ed0565b90506003816040518082805190602001908083835b60208310611e925780518252601f199092019160209182019101611e73565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a031695945050505050565b6060816000805b8251821015612029578282815181101515611eee57fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190040290507f61000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610801590611faf57507f7a000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821611155b15611fdf57601f197f01000000000000000000000000000000000000000000000000000000000000009182900401025b808383815181101515611fee57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190910190611ed7565b50909392505050565b60055460ff16151561208e576040805160e560020a62461bcd02815260206004820152601660248201527f436f6e7472616374206973206e6f742070617573656400000000000000000000604482015290519081900360640190fd5b6005805460ff191690556040805142815290517faaa520fdd7d2c83061d632fa017b0432407e798818af63ea908589fceda39ab79181900360200190a1565b60055460ff1615612128576040805160e560020a62461bcd02815260206004820152601260248201527f436f6e7472616374206973207061757365640000000000000000000000000000604482015290519081900360640190fd5b6005805460ff191660011790556040805142815290517f68b095021b1f40fe513109f513c66692f0b3219aee674a69f4efc57badb8201d9181900360200190a1565b600160a060020a038116151561217f57600080fd5b600554604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061223457805160ff1916838001178555612261565b82800160010185558215612261579182015b82811115612261578251825591602001919060010190612246565b5061226d929150612271565b5090565b61228b91905b8082111561226d5760008155600101612277565b905600a165627a7a72305820f236dfa3fe2289e7af8e04d3868aef9fe97a51e42b1d39a8fc3caaae56bd89340029",
  "sourceMap": "391:7142:6:-;;;175:40:20;;;216:26:2;;;-1:-1:-1;;216:26:2;;;1125:335:6;5:2:-1;;;;30:1;27;20:12;5:2;1125:335:6;;;;;;;;;;;;;;;;;;;;;;;;;567:5:64;:18;;-1:-1:-1;;;;;;567:18:64;575:10;567:18;;;;;1125:335:6;-1:-1:-1;;;;;412:31:5;;;;404:40;;;;;;454:16;:36;;-1:-1:-1;;;;;;454:36:5;-1:-1:-1;;;;;454:36:5;;;;;;;;;;1310:15:6;:34;;;1409:44;1428:15;1409:44;:18;;;;:44;:::i;:::-;1125:335;;;391:7142;;4515:200;719:5:64;;;;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;4620:15:6;:26;;;4656:27;;;:17;:27;;;;;:52;;-1:-1:-1;;;;;;4656:52:6;-1:-1:-1;;;;;4656:52:6;;;;;;;;;;4515:200::o;391:7142::-;;;;;;;",
  "deployedSourceMap": "391:7142:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3351:882;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3351:882:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3351:882:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3351:882:6;;;;-1:-1:-1;3351:882:6;-1:-1:-1;3351:882:6;;-1:-1:-1;3351:882:6;;;;;;;;-1:-1:-1;;3351:882:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3351:882:6;;;;;;;;;;;;;;;;-1:-1:-1;3351:882:6;;;;;-1:-1:-1;3351:882:6;;-1:-1:-1;3351:882:6;;;;-1:-1:-1;3351:882:6;;;;;;;;;;-1:-1:-1;3351:882:6;;-1:-1:-1;;3351:882:6;;;-1:-1:-1;3351:882:6;;-1:-1:-1;;;;3351:882:6;;;552:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;552:30:6;;;;;;;;;;;;;;;;;;;;4515:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4515:200:6;-1:-1:-1;;;;;4515:200:6;;;;;;;281:29:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;281:29:5;;;;;;;;-1:-1:-1;;;;;281:29:5;;;;;;;;;;;;;;175:40:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;175:40:20;;;;7340:64:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7340:64:6;;;;6121:261;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6121:261:6;;;;;216:26:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;216:26:2;;;;;;;;;;;;;;;;;;;;;;316:24:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;316:24:5;;;;827:111:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:64;;;;221:53:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;221:53:20;;;;;167:31:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;167:31:5;;;;6612:291:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6612:291:6;;;;;-1:-1:-1;;;;;6612:291:6;;;;;7471:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7471:59:6;;;;426:281:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;426:281:4;-1:-1:-1;;;;;426:281:4;;;;;238:20:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:64;;;;5336:294:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5336:294:6;-1:-1:-1;;;;;5336:294:6;;;;;;;;;;;;;-1:-1:-1;;;;;5336:294:6;-1:-1:-1;;;;;5336:294:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5336:294:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5336:294:6;;;;;;;;;;;;;;;;;;;;;;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;5336:294:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;204:29:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;204:29:5;;;;1769:1112:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1769:1112:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1769:1112:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1769:1112:6;;;;-1:-1:-1;1769:1112:6;-1:-1:-1;1769:1112:6;;-1:-1:-1;1769:1112:6;;;;;;;;-1:-1:-1;;1769:1112:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1769:1112:6;;;;-1:-1:-1;1769:1112:6;-1:-1:-1;1769:1112:6;;-1:-1:-1;1769:1112:6;;;;;;;;-1:-1:-1;1769:1112:6;;-1:-1:-1;;;;1769:1112:6;;;;;-1:-1:-1;1769:1112:6;;-1:-1:-1;;1769:1112:6;239:36:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;239:36:5;;;;5781:174:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5781:174:6;-1:-1:-1;;;;;5781:174:6;;;;;7112:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7112:162:6;;;;;;;1100:103:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1100:103:64;-1:-1:-1;;;;;1100:103:64;;;;;503:418:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;503:418:5;;;;4965:169:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4965:169:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4965:169:6;;-1:-1:-1;4965:169:6;;-1:-1:-1;;;;;;;4965:169:6;3351:882;719:5:64;;3651:20:6;;719:5:64;;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;3552:1:6;3536:5;3530:19;:23;:52;;;;;3581:1;3563:7;3557:21;:25;3530:52;3522:119;;;;;;;-1:-1:-1;;;;;3522:119:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3674:14;3680:7;3674:5;:14::i;:::-;3651:37;-1:-1:-1;;;;;;3706:28:6;;;;;;:61;;;3765:1;-1:-1:-1;;;;;3738:29:6;:7;3746:6;3738:15;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;3738:15:6;;;;;-1:-1:-1;3738:15:6;;;;;;;;;;;-1:-1:-1;;;;;3738:15:6;:29;;;;;-1:-1:-1;;3706:61:6;3698:155;;;;;;;-1:-1:-1;;;;;3698:155:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3871:20:6;;;;3863:29;;;;;;3928:14;;3912:77;;;;;-1:-1:-1;;;;;3912:77:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;3928:14;;;;;3912:42;;3955:6;;3963;;3971:5;;3978:10;;3912:77;;;;;;;;;;;;;;;;;;3928:14;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;3912:77:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3912:77:6;;;;;;;;;;;;;;;;;;;;;;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;3912:77:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3912:77:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3912:77:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3912:77:6;3910:80;3902:123;;;;;-1:-1:-1;;;;;3902:123:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;4053:14;4035:7;4043:6;4035:15;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;4035:15:6;;;;;-1:-1:-1;4035:15:6;;;;;;;;;;;:32;;-1:-1:-1;;;;;;4035:32:6;-1:-1:-1;;;;;4035:32:6;;;;;;4110:40;;;;;;;;;;;;;;4077:30;;;-1:-1:-1;4077:30:6;;;:14;:30;;;;;;:73;;;;4035:15;;4077:30;;:73;;-1:-1:-1;4077:30:6;;-1:-1:-1;4077:73:6;;;;:::i;:::-;-1:-1:-1;4077:73:6;;;;;;;;;;;;;;;;:::i;:::-;;;;;4165:61;4191:5;4198:6;4206:14;4222:3;4165:61;;;;;;;;;;-1:-1:-1;;;;;4165:61:6;-1:-1:-1;;;;;4165:61:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4165:61:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4165:61:6;;;;;;;;;;;;;;;;;;;;;;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;4165:61:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3351:882;;;;;;;:::o;552:30::-;;;;:::o;4515:200::-;719:5:64;;;;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;4620:15:6;:26;;;4656:27;;;:17;:27;;;;;:52;;-1:-1:-1;;;;;;4656:52:6;-1:-1:-1;;;;;4656:52:6;;;;;;;;;;4515:200::o;281:29:5:-;;;-1:-1:-1;;;;;281:29:5;;:::o;175:40:20:-;;;;:::o;7340:64:6:-;719:5:64;;;;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;7387:10:6;:8;:10::i;:::-;7340:64::o;6121:261::-;719:5:64;;;;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;6217:15:6;;:35;;;6209:44;;;;;;6297:15;;6268:63;;;;;;;;;;;;;;;;;;;;;;;;6341:15;:34;6121:261::o;216:26:2:-;;;;;;:::o;316:24:5:-;;;-1:-1:-1;;;;;316:24:5;;:::o;827:111:64:-;719:5;;;;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;903:5;;884:25;;903:5;;;;-1:-1:-1;;;;;903:5:64;;884:25;;;;;915:5;:18;;-1:-1:-1;;915:18:64;;;827:111::o;221:53:20:-;;;;;;;;;;;;-1:-1:-1;;;;;221:53:20;;:::o;167:31:5:-;;;-1:-1:-1;;;;;167:31:5;;:::o;6612:291:6:-;719:5:64;;;;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;6790:18:6;;;;:7;:18;;;;;;;;:40;;;;;;;;;;6732:104;;;;;;;;;;;-1:-1:-1;;;;;6732:104:6;;;;;;;6790:40;6732:104;;;;6832:3;6732:104;;;;;;;;;;;;;;;6846:18;;;;:7;:18;;;;;;;;:40;;;;;;;;:50;;-1:-1:-1;;;;;;6846:50:6;-1:-1:-1;;;;;6846:50:6;;;;;;;;;6612:291::o;7471:59::-;719:5:64;;;;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;7515:8:6;:6;:8::i;426:281:4:-;719:5:64;;548:16:4;;;;719:5:64;;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;509:28:4;;;;501:37;;;;;;621:30;;;;;;645:4;621:30;;;;;;578:14;;-1:-1:-1;;;;;;621:15:4;;;;;:30;;;;;;;;;;;;;;-1:-1:-1;621:15:4;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;621:30:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;621:30:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;621:30:4;684:5;;669:30;;;;;;684:5;;;;-1:-1:-1;;;;;684:5:4;;;669:30;;;;;;;;;;;;621;;-1:-1:-1;669:14:4;;;;;:30;;;;;621;;669;;;;;;;;-1:-1:-1;669:14:4;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;669:30:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;669:30:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;669:30:4;661:39;;;;;;;;426:281;;;:::o;238:20:64:-;;;;;;-1:-1:-1;;;;;238:20:64;;:::o;5336:294:6:-;-1:-1:-1;;;;;5467:30:6;;5419:7;5467:30;;;:14;:30;;;;;;;;5518:38;;;;;;;5411:6;;;;5467:30;;;;5518:36;;:38;;;;;;;;;;5419:7;5467:30;5518:38;;;5:2:-1;;;;30:1;27;20:12;5:2;5518:38:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5518:38:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5518:38:6;-1:-1:-1;;;;;5570:30:6;;;;;;:14;5518:38;5570:30;;;;;;;;5446:177;;;;5570:43;5446:177;;;;;;-1:-1:-1;;5446:177:6;;;;;;;;;;;;;;;;;;;;;;;;;;5570:43;;5446:177;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5446:177:6;;;;;;;;;;;;;-1:-1:-1;;5446:177:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5446:177:6;;-1:-1:-1;5446:177:6;-1:-1:-1;5446:177:6;;;-1:-1:-1;5446:177:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5336:294;;;;;:::o;204:29:5:-;;;-1:-1:-1;;;;;204:29:5;;:::o;1769:1112:6:-;397:6:2;;2344:20:6;;2391:31;;397:6:2;;396:7;388:38;;;;;-1:-1:-1;;;;;388:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;1930:1:6;1914:5;1908:19;:23;:52;;;;;1959:1;1941:7;1935:21;:25;1908:52;1900:119;;;;;;;-1:-1:-1;;;;;1900:119:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2053:14;;2037:73;;;;;2092:10;2037:73;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2053:14:6;;;;2037:45;;2083:7;;2092:10;2104:5;;2037:73;;;;;;;;;;;;;;;;;;2053:14;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;2037:73:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2037:73:6;;;;;;;;;;;;;;;;;;;;;;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;2037:73:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2037:73:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2037:73:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2037:73:6;2029:116;;;;;;;-1:-1:-1;;;;;2029:116:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;2176:1;2158:15;;:19;2155:179;;;2205:9;;2247:15;;2199:64;;;;;;2229:10;2199:64;;;;2241:4;2199:64;;;;;;;;;;;;-1:-1:-1;;;;;2205:9:6;;;;2199:29;;:64;;;;;;;;;;;;;;;2205:9;;2199:64;;;5:2:-1;;;;30:1;27;20:12;5:2;2199:64:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2199:64:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2199:64:6;2191:143;;;;;;;-1:-1:-1;;;;;2191:143:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2367:14;2373:7;2367:5;:14::i;:::-;2434:34;2452:15;;2434:34;;:17;:34;;;;;;;;;2625:16;;2425:226;;;;;2534:2;2425:226;;;;;;2577:10;2425:226;;;;;;;;;;;;;-1:-1:-1;;;;;2625:16:6;;;2425:226;;;;;;;;;;;;;;;;;;;;;2344:37;;-1:-1:-1;2434:34:6;;;;;2425:56;;2495:5;;2344:37;;2534:2;;2550:13;;2577:10;;2601;;2625:16;;2425:226;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2425:226:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2425:226:6;;;;;;;;;;;;;;;;;;;;;;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;2425:226:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2425:226:6;;;;;;;;;;;;;;;;;;;;;;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;2425:226:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2425:226:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2425:226:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2425:226:6;2704:40;;;;;;;;;;;2425:226;2704:40;;;;;;-1:-1:-1;;;;;2662:39:6;;-1:-1:-1;2662:39:6;;;:14;:39;;;;;;:82;;;;2425:226;;-1:-1:-1;2704:40:6;;2662:39;;:82;;:39;;:82;;;;:::i;:::-;-1:-1:-1;2662:82:6;;;;;;;;;;;;;;;;:::i;:::-;;;;;2772:23;2754:7;2762:6;2754:15;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2754:15:6;;;;;-1:-1:-1;2754:15:6;;;;;;;;;;;:41;;-1:-1:-1;;;;;;2754:41:6;-1:-1:-1;;;;;2754:41:6;;;;;;2810:64;;;;;;;;;;;2863:10;;2810:64;;;;;-1:-1:-1;2810:64:6;;-1:-1:-1;2754:15:6;;;2810:64;;;;;;;;;;-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;2810:64:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1769:1112;;;;;;:::o;239:36:5:-;;;-1:-1:-1;;;;;239:36:5;;:::o;5781:174:6:-;5934:13;;;-1:-1:-1;;;;;5891:30:6;;5851:4;5891:30;;;:14;:30;;;;;;;5875:55;;5851:4;;5934:13;;5891:30;;5934:13;;5891:30;;5875:55;;;;;;-1:-1:-1;;5875:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5875:55:6;;;;;;;;:72;;;;;;5781:174;-1:-1:-1;;;;5781:174:6:o;7112:162::-;7201:7;7227:18;;;:7;:18;;;;;;;;:40;;;;;;;;;-1:-1:-1;;;;;7227:40:6;;7112:162::o;1100:103:64:-;719:5;;;;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;503:418:5:-;719:5:64;;;;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;594:16:5;;577:63;;;-1:-1:-1;;;;;577:63:5;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;594:16:5;;;;577:45;;:63;;;;;;;;;;;;;594:16;;577:63;;;5:2:-1;;;;30:1;27;20:12;5:2;577:63:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;577:63:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;577:63:5;560:14;:80;;-1:-1:-1;;;;;;560:80:5;-1:-1:-1;;;;;560:80:5;;;;;;691:16;;674:70;;;-1:-1:-1;;;;;674:70:5;;577:63;674:70;;;;;;;;;;;;;;;;;;691:16;;;;;674:45;;:70;;;;;577:63;674:70;;;;;-1:-1:-1;691:16:5;674:70;;;5:2:-1;;;;30:1;27;20:12;5:2;674:70:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;674:70:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;674:70:5;650:21;:94;;-1:-1:-1;;;;;;650:94:5;-1:-1:-1;;;;;650:94:5;;;;;;788:16;;771:63;;;-1:-1:-1;;;;;771:63:5;;674:70;771:63;;;;;;;;;;;;;;;;;;788:16;;;;;771:45;;:63;;;;;674:70;771:63;;;;;-1:-1:-1;788:16:5;771:63;;;5:2:-1;;;;30:1;27;20:12;5:2;771:63:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;771:63:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;771:63:5;754:14;:80;;-1:-1:-1;;;;;;754:80:5;-1:-1:-1;;;;;754:80:5;;;;;;873:16;;856:58;;;-1:-1:-1;;;;;856:58:5;;771:63;856:58;;;;;;;;;;;;;;;;;;;;873:16;;;;;856:45;;:58;;;;;771:63;;856:58;;;;;-1:-1:-1;873:16:5;856:58;;;5:2:-1;;;;30:1;27;20:12;5:2;856:58:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;856:58:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;856:58:5;844:9;:70;;-1:-1:-1;;;;;;844:70:5;-1:-1:-1;;;;;844:70:5;;;;;;;;;503:418::o;4965:169:6:-;5035:7;5054:22;5079:14;5085:7;5079:5;:14::i;:::-;5054:39;;5110:7;5118:8;5110:17;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;5110:17:6;;;;;-1:-1:-1;5110:17:6;;;;;;;;;;;-1:-1:-1;;;;;5110:17:6;;4965:169;-1:-1:-1;;;;;4965:169:6:o;195:387:11:-;247:6;297:5;318:6;;313:228;334:10;:17;330:1;:21;313:228;;;384:10;395:1;384:13;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;415:10:11;;;;;;;;:24;;-1:-1:-1;429:10:11;;;;;;415:24;411:88;;;-1:-1:-1;;471:9:11;;;;;:12;464:20;411:88;528:2;512:10;523:1;512:13;;;;;;;;;;;;;;:18;;;;;;;;;;-1:-1:-1;353:3:11;;;;;313:228;;;-1:-1:-1;564:10:11;;195:387;-1:-1:-1;;;195:387:11:o;915:98:2:-;590:6;;;;582:41;;;;;;;-1:-1:-1;;;;;582:41:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;965:6;:14;;-1:-1:-1;;965:14:2;;;994:12;;;1002:3;994:12;;;;;;;;;;;;;915:98::o;728:96::-;397:6;;;;396:7;388:38;;;;;-1:-1:-1;;;;;388:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;779:6;:13;;-1:-1:-1;;779:13:2;788:4;779:13;;;807:10;;;813:3;807:10;;;;;;;;;;;;;728:96::o;1338:171:64:-;-1:-1:-1;;;;;1408:23:64;;;;1400:32;;;;;;1464:5;;1443:38;;-1:-1:-1;;;;;1443:38:64;;;;1464:5;;;;;1443:38;;;;;1487:5;:17;;-1:-1:-1;;;;;1487:17:64;;;;;-1:-1:-1;;1487:17:64;;;;;;;;;1338:171::o;391:7142:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;391:7142:6;;;-1:-1:-1;391:7142:6;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.24;\n\nimport \"./interfaces/ITickerRegistry.sol\";\nimport \"./tokens/SecurityToken.sol\";\nimport \"./interfaces/ISTProxy.sol\";\nimport \"./interfaces/ISecurityTokenRegistry.sol\";\nimport \"./Pausable.sol\";\nimport \"./RegistryUpdater.sol\";\nimport \"./ReclaimTokens.sol\";\nimport \"./helpers/Util.sol\";\n\n/**\n * @title Registry contract for issuers to register their security tokens\n */\ncontract SecurityTokenRegistry is ISecurityTokenRegistry, Util, Pausable, RegistryUpdater, ReclaimTokens {\n\n    // Registration fee in POLY base 18 decimals\n    uint256 public registrationFee;\n    // Emit when changePolyRegistrationFee is called\n    event LogChangePolyRegistrationFee(uint256 _oldFee, uint256 _newFee);\n\n    // Emit at the time of launching of new security token\n    event LogNewSecurityToken(string _ticker, address indexed _securityTokenAddress, address indexed _owner);\n    event LogAddCustomSecurityToken(string _name, string _symbol, address _securityToken, uint256 _addedAt);\n    event LogChangeOracle(bytes32 _currency, bytes32 _denominatedCurrency, address _newOracle, address _oldOracle, uint256 _now);\n\n    constructor (\n        address _polymathRegistry,\n        address _stVersionProxy,\n        uint256 _registrationFee\n    )\n    public\n    RegistryUpdater(_polymathRegistry)\n    {\n        registrationFee = _registrationFee;\n        // By default, the STR version is set to 0.0.1\n        setProtocolVersion(_stVersionProxy, \"0.0.1\");\n    }\n\n    /**\n     * @notice Creates a new Security Token and saves it to the registry\n     * @param _name Name of the token\n     * @param _symbol Ticker symbol of the security token\n     * @param _tokenDetails off-chain details of the token\n     * @param _divisible Set to true if token is divisible\n     */\n    function generateSecurityToken(string _name, string _symbol, string _tokenDetails, bool _divisible) public whenNotPaused {\n        require(bytes(_name).length > 0 && bytes(_symbol).length > 0, \"Name and Symbol string length should be greater than 0\");\n        require(ITickerRegistry(tickerRegistry).checkValidity(_symbol, msg.sender, _name), \"Trying to use non-valid symbol\");\n        if(registrationFee > 0)\n            require(ERC20(polyToken).transferFrom(msg.sender, this, registrationFee), \"Failed transferFrom because of sufficent Allowance is not provided\");\n        string memory symbol = upper(_symbol);\n        address newSecurityTokenAddress = ISTProxy(protocolVersionST[protocolVersion]).deployToken(\n            _name,\n            symbol,\n            18,\n            _tokenDetails,\n            msg.sender,\n            _divisible,\n            polymathRegistry\n        );\n\n        securityTokens[newSecurityTokenAddress] = SecurityTokenData(symbol, _tokenDetails);\n        symbols[symbol] = newSecurityTokenAddress;\n        emit LogNewSecurityToken(symbol, newSecurityTokenAddress, msg.sender);\n    }\n\n    /**\n     * @notice Add a new custom (Token should follow the ISecurityToken interface) Security Token and saves it to the registry\n     * @param _name Name of the token\n     * @param _symbol Ticker symbol of the security token\n     * @param _owner Owner of the token\n     * @param _securityToken Address of the securityToken\n     * @param _tokenDetails off-chain details of the token\n     * @param _swarmHash off-chain details about the issuer company\n     */\n    function addCustomSecurityToken(string _name, string _symbol, address _owner, address _securityToken, string _tokenDetails, bytes32 _swarmHash) public onlyOwner {\n        require(bytes(_name).length > 0 && bytes(_symbol).length > 0, \"Name and Symbol string length should be greater than 0\");\n        string memory symbol = upper(_symbol);\n        require(_securityToken != address(0) && symbols[symbol] == address(0), \"Symbol is already at the polymath network or entered security token address is 0x\");\n        require(_owner != address(0));\n        require(!(ITickerRegistry(tickerRegistry).isReserved(symbol, _owner, _name, _swarmHash)), \"Trying to use non-valid symbol\");\n        symbols[symbol] = _securityToken;\n        securityTokens[_securityToken] = SecurityTokenData(symbol, _tokenDetails);\n        emit LogAddCustomSecurityToken(_name, symbol, _securityToken, now);\n    }\n\n    /**\n    * @notice Changes the protocol version and the SecurityToken contract\n    * @notice Used only by Polymath to upgrade the SecurityToken contract and add more functionalities to future versions\n    * @notice Changing versions does not affect existing tokens.\n    */\n    function setProtocolVersion(address _stVersionProxyAddress, bytes32 _version) public onlyOwner {\n        protocolVersion = _version;\n        protocolVersionST[_version] = _stVersionProxyAddress;\n    }\n\n    //////////////////////////////\n    ///////// Get Functions\n    //////////////////////////////\n    /**\n     * @notice Get security token address by ticker name\n     * @param _symbol Symbol of the Scurity token\n     * @return address\n     */\n    function getSecurityTokenAddress(string _symbol) public view returns (address) {\n        string memory __symbol = upper(_symbol);\n        return symbols[__symbol];\n    }\n\n     /**\n     * @notice Get security token data by its address\n     * @param _securityToken Address of the Scurity token\n     * @return string\n     * @return address\n     * @return string\n     */\n    function getSecurityTokenData(address _securityToken) public view returns (string, address, string) {\n        return (\n            securityTokens[_securityToken].symbol,\n            ISecurityToken(_securityToken).owner(),\n            securityTokens[_securityToken].tokenDetails\n        );\n    }\n\n    /**\n    * @notice Check that Security Token is registered\n    * @param _securityToken Address of the Scurity token\n    * @return bool\n    */\n    function isSecurityToken(address _securityToken) public view returns (bool) {\n        return (keccak256(bytes(securityTokens[_securityToken].symbol)) != keccak256(\"\"));\n    }\n\n    /**\n     * @notice set the ticker registration fee in POLY tokens\n     * @param _registrationFee registration fee in POLY tokens (base 18 decimals)\n     */\n    function changePolyRegistrationFee(uint256 _registrationFee) public onlyOwner {\n        require(registrationFee != _registrationFee);\n        emit LogChangePolyRegistrationFee(registrationFee, _registrationFee);\n        registrationFee = _registrationFee;\n    }\n\n    /**\n     * @notice Change address of oracle for currency pair\n     * @param _currency Symbol of currency\n     * @param _denominatedCurrency Symbol of denominated currency\n     * @param _oracle Address of IOracle\n     */\n    function changeOracle(bytes32 _currency, bytes32 _denominatedCurrency, address _oracle) public onlyOwner {\n        emit LogChangeOracle(_currency, _denominatedCurrency, _oracle, oracles[_currency][_denominatedCurrency], now);\n        oracles[_currency][_denominatedCurrency] = _oracle;\n    }\n\n    /**\n     * @notice Get oracle for currency pair\n     * @param _currency Symbol of currency\n     * @param _denominatedCurrency Symbol of denominated currency\n     * @return address of IOracle\n     */\n    function getOracle(bytes32 _currency, bytes32 _denominatedCurrency) public view returns (address) {\n        return oracles[_currency][_denominatedCurrency];\n    }\n\n     /**\n     * @notice pause registration function\n     */\n    function unpause() public onlyOwner  {\n        _unpause();\n    }\n\n    /**\n     * @notice unpause registration function\n     */\n    function pause() public onlyOwner {\n        _pause();\n    }\n\n}\n",
  "sourcePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/SecurityTokenRegistry.sol",
  "ast": {
    "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/SecurityTokenRegistry.sol",
    "exportedSymbols": {
      "SecurityTokenRegistry": [
        1143
      ]
    },
    "id": 1144,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 678,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:6"
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/ITickerRegistry.sol",
        "file": "./interfaces/ITickerRegistry.sol",
        "id": 679,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 10284,
        "src": "26:42:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/tokens/SecurityToken.sol",
        "file": "./tokens/SecurityToken.sol",
        "id": 680,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 22358,
        "src": "69:36:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/ISTProxy.sol",
        "file": "./interfaces/ISTProxy.sol",
        "id": 681,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 10071,
        "src": "106:35:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/ISecurityTokenRegistry.sol",
        "file": "./interfaces/ISecurityTokenRegistry.sol",
        "id": 682,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 10242,
        "src": "142:49:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/Pausable.sol",
        "file": "./Pausable.sol",
        "id": 683,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 472,
        "src": "192:24:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/RegistryUpdater.sol",
        "file": "./RegistryUpdater.sol",
        "id": 684,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 677,
        "src": "217:31:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/ReclaimTokens.sol",
        "file": "./ReclaimTokens.sol",
        "id": 685,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 600,
        "src": "249:29:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/helpers/Util.sol",
        "file": "./helpers/Util.sol",
        "id": 686,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 9529,
        "src": "279:28:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 687,
              "name": "ISecurityTokenRegistry",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10241,
              "src": "425:22:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ISecurityTokenRegistry_$10241",
                "typeString": "contract ISecurityTokenRegistry"
              }
            },
            "id": 688,
            "nodeType": "InheritanceSpecifier",
            "src": "425:22:6"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 689,
              "name": "Util",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 9528,
              "src": "449:4:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Util_$9528",
                "typeString": "contract Util"
              }
            },
            "id": 690,
            "nodeType": "InheritanceSpecifier",
            "src": "449:4:6"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 691,
              "name": "Pausable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 471,
              "src": "455:8:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Pausable_$471",
                "typeString": "contract Pausable"
              }
            },
            "id": 692,
            "nodeType": "InheritanceSpecifier",
            "src": "455:8:6"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 693,
              "name": "RegistryUpdater",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 676,
              "src": "465:15:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RegistryUpdater_$676",
                "typeString": "contract RegistryUpdater"
              }
            },
            "id": 694,
            "nodeType": "InheritanceSpecifier",
            "src": "465:15:6"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 695,
              "name": "ReclaimTokens",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 599,
              "src": "482:13:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ReclaimTokens_$599",
                "typeString": "contract ReclaimTokens"
              }
            },
            "id": 696,
            "nodeType": "InheritanceSpecifier",
            "src": "482:13:6"
          }
        ],
        "contractDependencies": [
          471,
          599,
          676,
          9528,
          10241,
          22664
        ],
        "contractKind": "contract",
        "documentation": "@title Registry contract for issuers to register their security tokens",
        "fullyImplemented": true,
        "id": 1143,
        "linearizedBaseContracts": [
          1143,
          599,
          676,
          22664,
          471,
          9528,
          10241
        ],
        "name": "SecurityTokenRegistry",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 698,
            "name": "registrationFee",
            "nodeType": "VariableDeclaration",
            "scope": 1143,
            "src": "552:30:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 697,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "552:7:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 704,
            "name": "LogChangePolyRegistrationFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 703,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 700,
                  "indexed": false,
                  "name": "_oldFee",
                  "nodeType": "VariableDeclaration",
                  "scope": 704,
                  "src": "676:15:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 699,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "676:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 702,
                  "indexed": false,
                  "name": "_newFee",
                  "nodeType": "VariableDeclaration",
                  "scope": 704,
                  "src": "693:15:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 701,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "693:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "675:34:6"
            },
            "src": "641:69:6"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 712,
            "name": "LogNewSecurityToken",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 711,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 706,
                  "indexed": false,
                  "name": "_ticker",
                  "nodeType": "VariableDeclaration",
                  "scope": 712,
                  "src": "801:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 705,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "801:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 708,
                  "indexed": true,
                  "name": "_securityTokenAddress",
                  "nodeType": "VariableDeclaration",
                  "scope": 712,
                  "src": "817:37:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 707,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "817:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 710,
                  "indexed": true,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 712,
                  "src": "856:22:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 709,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "856:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "800:79:6"
            },
            "src": "775:105:6"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 722,
            "name": "LogAddCustomSecurityToken",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 721,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 714,
                  "indexed": false,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 722,
                  "src": "917:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 713,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "917:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 716,
                  "indexed": false,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 722,
                  "src": "931:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 715,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "931:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 718,
                  "indexed": false,
                  "name": "_securityToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 722,
                  "src": "947:22:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 717,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "947:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 720,
                  "indexed": false,
                  "name": "_addedAt",
                  "nodeType": "VariableDeclaration",
                  "scope": 722,
                  "src": "971:16:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 719,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "971:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "916:72:6"
            },
            "src": "885:104:6"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 734,
            "name": "LogChangeOracle",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 733,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 724,
                  "indexed": false,
                  "name": "_currency",
                  "nodeType": "VariableDeclaration",
                  "scope": 734,
                  "src": "1016:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 723,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1016:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 726,
                  "indexed": false,
                  "name": "_denominatedCurrency",
                  "nodeType": "VariableDeclaration",
                  "scope": 734,
                  "src": "1035:28:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 725,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1035:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 728,
                  "indexed": false,
                  "name": "_newOracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 734,
                  "src": "1065:18:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 727,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1065:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 730,
                  "indexed": false,
                  "name": "_oldOracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 734,
                  "src": "1085:18:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 729,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1085:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 732,
                  "indexed": false,
                  "name": "_now",
                  "nodeType": "VariableDeclaration",
                  "scope": 734,
                  "src": "1105:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 731,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1105:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1015:103:6"
            },
            "src": "994:125:6"
          },
          {
            "body": {
              "id": 755,
              "nodeType": "Block",
              "src": "1300:160:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 748,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 746,
                      "name": "registrationFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 698,
                      "src": "1310:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 747,
                      "name": "_registrationFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 740,
                      "src": "1328:16:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1310:34:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 749,
                  "nodeType": "ExpressionStatement",
                  "src": "1310:34:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 751,
                        "name": "_stVersionProxy",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 738,
                        "src": "1428:15:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "302e302e31",
                        "id": 752,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1445:7:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885",
                          "typeString": "literal_string \"0.0.1\""
                        },
                        "value": "0.0.1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885",
                          "typeString": "literal_string \"0.0.1\""
                        }
                      ],
                      "id": 750,
                      "name": "setProtocolVersion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        986
                      ],
                      "referencedDeclaration": 986,
                      "src": "1409:18:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 753,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1409:44:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 754,
                  "nodeType": "ExpressionStatement",
                  "src": "1409:44:6"
                }
              ]
            },
            "documentation": null,
            "id": 756,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 743,
                    "name": "_polymathRegistry",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 736,
                    "src": "1277:17:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 744,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 742,
                  "name": "RegistryUpdater",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 676,
                  "src": "1261:15:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_RegistryUpdater_$676_$",
                    "typeString": "type(contract RegistryUpdater)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1261:34:6"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 741,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 736,
                  "name": "_polymathRegistry",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "1147:25:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 735,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1147:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 738,
                  "name": "_stVersionProxy",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "1182:23:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 737,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1182:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 740,
                  "name": "_registrationFee",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "1215:24:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 739,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1215:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1137:108:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 745,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1300:0:6"
            },
            "scope": 1143,
            "src": "1125:335:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 862,
              "nodeType": "Block",
              "src": "1890:991:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 782,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 775,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 771,
                                  "name": "_name",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 758,
                                  "src": "1914:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 770,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1908:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": "bytes"
                              },
                              "id": 772,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1908:12:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 773,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1908:19:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 774,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1930:1:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1908:23:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 781,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 777,
                                  "name": "_symbol",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 760,
                                  "src": "1941:7:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 776,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1935:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": "bytes"
                              },
                              "id": 778,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1935:14:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 779,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1935:21:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 780,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1959:1:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1935:25:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1908:52:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e616d6520616e642053796d626f6c20737472696e67206c656e6774682073686f756c642062652067726561746572207468616e2030",
                        "id": 783,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1962:56:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b53ef3e67f70f18ee2273b80ae0e6740aa376258e5798f579b2f19d8d40248a3",
                          "typeString": "literal_string \"Name and Symbol string length should be greater than 0\""
                        },
                        "value": "Name and Symbol string length should be greater than 0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b53ef3e67f70f18ee2273b80ae0e6740aa376258e5798f579b2f19d8d40248a3",
                          "typeString": "literal_string \"Name and Symbol string length should be greater than 0\""
                        }
                      ],
                      "id": 769,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23135,
                      "src": "1900:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 784,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1900:119:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 785,
                  "nodeType": "ExpressionStatement",
                  "src": "1900:119:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 791,
                            "name": "_symbol",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 760,
                            "src": "2083:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 792,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23131,
                              "src": "2092:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 793,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2092:10:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 794,
                            "name": "_name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 758,
                            "src": "2104:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 788,
                                "name": "tickerRegistry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 613,
                                "src": "2053:14:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 787,
                              "name": "ITickerRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10283,
                              "src": "2037:15:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ITickerRegistry_$10283_$",
                                "typeString": "type(contract ITickerRegistry)"
                              }
                            },
                            "id": 789,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2037:31:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ITickerRegistry_$10283",
                              "typeString": "contract ITickerRegistry"
                            }
                          },
                          "id": 790,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "checkValidity",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10254,
                          "src": "2037:45:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$_t_string_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (string memory,address,string memory) external returns (bool)"
                          }
                        },
                        "id": 795,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2037:73:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "547279696e6720746f20757365206e6f6e2d76616c69642073796d626f6c",
                        "id": 796,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2112:32:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_522d15e8c0f5c34974d1a755d834bbedfee2966e8453ee46cce4f667231c8957",
                          "typeString": "literal_string \"Trying to use non-valid symbol\""
                        },
                        "value": "Trying to use non-valid symbol"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_522d15e8c0f5c34974d1a755d834bbedfee2966e8453ee46cce4f667231c8957",
                          "typeString": "literal_string \"Trying to use non-valid symbol\""
                        }
                      ],
                      "id": 786,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23135,
                      "src": "2029:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 797,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2029:116:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 798,
                  "nodeType": "ExpressionStatement",
                  "src": "2029:116:6"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 801,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 799,
                      "name": "registrationFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 698,
                      "src": "2158:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 800,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2176:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2158:19:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 815,
                  "nodeType": "IfStatement",
                  "src": "2155:179:6",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 807,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23131,
                                "src": "2229:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 808,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "2229:10:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 809,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23202,
                              "src": "2241:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_SecurityTokenRegistry_$1143",
                                "typeString": "contract SecurityTokenRegistry"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 810,
                              "name": "registrationFee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 698,
                              "src": "2247:15:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_contract$_SecurityTokenRegistry_$1143",
                                "typeString": "contract SecurityTokenRegistry"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 804,
                                  "name": "polyToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 615,
                                  "src": "2205:9:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 803,
                                "name": "ERC20",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22837,
                                "src": "2199:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_ERC20_$22837_$",
                                  "typeString": "type(contract ERC20)"
                                }
                              },
                              "id": 805,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2199:16:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ERC20_$22837",
                                "typeString": "contract ERC20"
                              }
                            },
                            "id": 806,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transferFrom",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22819,
                            "src": "2199:29:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) external returns (bool)"
                            }
                          },
                          "id": 811,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2199:64:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "4661696c6564207472616e7366657246726f6d2062656361757365206f6620737566666963656e7420416c6c6f77616e6365206973206e6f742070726f7669646564",
                          "id": 812,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2265:68:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_39f8133d9e40dc5e6b34d9a9e536ce9c723fe05af13c2feb51de7d902ca65f7f",
                            "typeString": "literal_string \"Failed transferFrom because of sufficent Allowance is not provided\""
                          },
                          "value": "Failed transferFrom because of sufficent Allowance is not provided"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_39f8133d9e40dc5e6b34d9a9e536ce9c723fe05af13c2feb51de7d902ca65f7f",
                            "typeString": "literal_string \"Failed transferFrom because of sufficent Allowance is not provided\""
                          }
                        ],
                        "id": 802,
                        "name": "require",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23134,
                          23135
                        ],
                        "referencedDeclaration": 23135,
                        "src": "2191:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                          "typeString": "function (bool,string memory) pure"
                        }
                      },
                      "id": 813,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2191:143:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 814,
                    "nodeType": "ExpressionStatement",
                    "src": "2191:143:6"
                  }
                },
                {
                  "assignments": [
                    817
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 817,
                      "name": "symbol",
                      "nodeType": "VariableDeclaration",
                      "scope": 863,
                      "src": "2344:20:6",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 816,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "2344:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 821,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 819,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 760,
                        "src": "2373:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 818,
                      "name": "upper",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9527,
                      "src": "2367:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (string memory) pure returns (string memory)"
                      }
                    },
                    "id": 820,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2367:14:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2344:37:6"
                },
                {
                  "assignments": [
                    823
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 823,
                      "name": "newSecurityTokenAddress",
                      "nodeType": "VariableDeclaration",
                      "scope": 863,
                      "src": "2391:31:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 822,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2391:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 839,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 830,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 758,
                        "src": "2495:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 831,
                        "name": "symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 817,
                        "src": "2514:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "3138",
                        "id": 832,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2534:2:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_18_by_1",
                          "typeString": "int_const 18"
                        },
                        "value": "18"
                      },
                      {
                        "argumentTypes": null,
                        "id": 833,
                        "name": "_tokenDetails",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 762,
                        "src": "2550:13:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 834,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23131,
                          "src": "2577:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 835,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2577:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 836,
                        "name": "_divisible",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 764,
                        "src": "2601:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 837,
                        "name": "polymathRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 607,
                        "src": "2625:16:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_rational_18_by_1",
                          "typeString": "int_const 18"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 825,
                              "name": "protocolVersionST",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10169,
                              "src": "2434:17:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                "typeString": "mapping(bytes32 => address)"
                              }
                            },
                            "id": 827,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 826,
                              "name": "protocolVersion",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10165,
                              "src": "2452:15:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2434:34:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 824,
                          "name": "ISTProxy",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10070,
                          "src": "2425:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_ISTProxy_$10070_$",
                            "typeString": "type(contract ISTProxy)"
                          }
                        },
                        "id": 828,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2425:44:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ISTProxy_$10070",
                          "typeString": "contract ISTProxy"
                        }
                      },
                      "id": 829,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "deployToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10069,
                      "src": "2425:56:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$_t_string_memory_ptr_$_t_address_$_t_bool_$_t_address_$returns$_t_address_$",
                        "typeString": "function (string memory,string memory,uint8,string memory,address,bool,address) external returns (address)"
                      }
                    },
                    "id": 838,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2425:226:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2391:260:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 847,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 840,
                        "name": "securityTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10178,
                        "src": "2662:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SecurityTokenData_$10174_storage_$",
                          "typeString": "mapping(address => struct ISecurityTokenRegistry.SecurityTokenData storage ref)"
                        }
                      },
                      "id": 842,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 841,
                        "name": "newSecurityTokenAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 823,
                        "src": "2677:23:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2662:39:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_SecurityTokenData_$10174_storage",
                        "typeString": "struct ISecurityTokenRegistry.SecurityTokenData storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 844,
                          "name": "symbol",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 817,
                          "src": "2722:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 845,
                          "name": "_tokenDetails",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 762,
                          "src": "2730:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        ],
                        "id": 843,
                        "name": "SecurityTokenData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10174,
                        "src": "2704:17:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_SecurityTokenData_$10174_storage_ptr_$",
                          "typeString": "type(struct ISecurityTokenRegistry.SecurityTokenData storage pointer)"
                        }
                      },
                      "id": 846,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2704:40:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_SecurityTokenData_$10174_memory",
                        "typeString": "struct ISecurityTokenRegistry.SecurityTokenData memory"
                      }
                    },
                    "src": "2662:82:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_SecurityTokenData_$10174_storage",
                      "typeString": "struct ISecurityTokenRegistry.SecurityTokenData storage ref"
                    }
                  },
                  "id": 848,
                  "nodeType": "ExpressionStatement",
                  "src": "2662:82:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 853,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 849,
                        "name": "symbols",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10182,
                        "src": "2754:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$",
                          "typeString": "mapping(string memory => address)"
                        }
                      },
                      "id": 851,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 850,
                        "name": "symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 817,
                        "src": "2762:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2754:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 852,
                      "name": "newSecurityTokenAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 823,
                      "src": "2772:23:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2754:41:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 854,
                  "nodeType": "ExpressionStatement",
                  "src": "2754:41:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 856,
                        "name": "symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 817,
                        "src": "2830:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 857,
                        "name": "newSecurityTokenAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 823,
                        "src": "2838:23:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 858,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23131,
                          "src": "2863:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 859,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2863:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 855,
                      "name": "LogNewSecurityToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 712,
                      "src": "2810:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address,address)"
                      }
                    },
                    "id": 860,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2810:64:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 861,
                  "nodeType": "EmitStatement",
                  "src": "2805:69:6"
                }
              ]
            },
            "documentation": "@notice Creates a new Security Token and saves it to the registry\n@param _name Name of the token\n@param _symbol Ticker symbol of the security token\n@param _tokenDetails off-chain details of the token\n@param _divisible Set to true if token is divisible",
            "id": 863,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 767,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 766,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 433,
                  "src": "1876:13:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1876:13:6"
              }
            ],
            "name": "generateSecurityToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 765,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 758,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 863,
                  "src": "1800:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 757,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1800:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 760,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 863,
                  "src": "1814:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 759,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1814:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 762,
                  "name": "_tokenDetails",
                  "nodeType": "VariableDeclaration",
                  "scope": 863,
                  "src": "1830:20:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 761,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1830:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 764,
                  "name": "_divisible",
                  "nodeType": "VariableDeclaration",
                  "scope": 863,
                  "src": "1852:15:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 763,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1852:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1799:69:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 768,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1890:0:6"
            },
            "scope": 1143,
            "src": "1769:1112:6",
            "stateMutability": "nonpayable",
            "superFunction": 10199,
            "visibility": "public"
          },
          {
            "body": {
              "id": 965,
              "nodeType": "Block",
              "src": "3512:721:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 893,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 886,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 882,
                                  "name": "_name",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 865,
                                  "src": "3536:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 881,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3530:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": "bytes"
                              },
                              "id": 883,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3530:12:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 884,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "3530:19:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 885,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3552:1:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "3530:23:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 892,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 888,
                                  "name": "_symbol",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 867,
                                  "src": "3563:7:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 887,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3557:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": "bytes"
                              },
                              "id": 889,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3557:14:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 890,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "3557:21:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 891,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3581:1:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "3557:25:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "3530:52:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e616d6520616e642053796d626f6c20737472696e67206c656e6774682073686f756c642062652067726561746572207468616e2030",
                        "id": 894,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3584:56:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b53ef3e67f70f18ee2273b80ae0e6740aa376258e5798f579b2f19d8d40248a3",
                          "typeString": "literal_string \"Name and Symbol string length should be greater than 0\""
                        },
                        "value": "Name and Symbol string length should be greater than 0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b53ef3e67f70f18ee2273b80ae0e6740aa376258e5798f579b2f19d8d40248a3",
                          "typeString": "literal_string \"Name and Symbol string length should be greater than 0\""
                        }
                      ],
                      "id": 880,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23135,
                      "src": "3522:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 895,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3522:119:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 896,
                  "nodeType": "ExpressionStatement",
                  "src": "3522:119:6"
                },
                {
                  "assignments": [
                    898
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 898,
                      "name": "symbol",
                      "nodeType": "VariableDeclaration",
                      "scope": 966,
                      "src": "3651:20:6",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 897,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "3651:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 902,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 900,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 867,
                        "src": "3680:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 899,
                      "name": "upper",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9527,
                      "src": "3674:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (string memory) pure returns (string memory)"
                      }
                    },
                    "id": 901,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3674:14:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3651:37:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 916,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 908,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 904,
                            "name": "_securityToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 871,
                            "src": "3706:14:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 906,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3732:1:6",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 905,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3724:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 907,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3724:10:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "3706:28:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 915,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 909,
                              "name": "symbols",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10182,
                              "src": "3738:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$",
                                "typeString": "mapping(string memory => address)"
                              }
                            },
                            "id": 911,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 910,
                              "name": "symbol",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 898,
                              "src": "3746:6:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3738:15:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 913,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3765:1:6",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 912,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3757:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 914,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3757:10:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "3738:29:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "3706:61:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "53796d626f6c20697320616c72656164792061742074686520706f6c796d617468206e6574776f726b206f7220656e746572656420736563757269747920746f6b656e2061646472657373206973203078",
                        "id": 917,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3769:83:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b175d435c4a06e63036a1d833d5aaab2f84bf001c997c717b3aae68de076621d",
                          "typeString": "literal_string \"Symbol is already at the polymath network or entered security token address is 0x\""
                        },
                        "value": "Symbol is already at the polymath network or entered security token address is 0x"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b175d435c4a06e63036a1d833d5aaab2f84bf001c997c717b3aae68de076621d",
                          "typeString": "literal_string \"Symbol is already at the polymath network or entered security token address is 0x\""
                        }
                      ],
                      "id": 903,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23135,
                      "src": "3698:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 918,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3698:155:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 919,
                  "nodeType": "ExpressionStatement",
                  "src": "3698:155:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 925,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 921,
                          "name": "_owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 869,
                          "src": "3871:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 923,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3889:1:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 922,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "3881:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 924,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3881:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3871:20:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 920,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23134,
                      "src": "3863:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 926,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3863:29:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 927,
                  "nodeType": "ExpressionStatement",
                  "src": "3863:29:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 939,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "3910:80:6",
                        "subExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 933,
                                  "name": "symbol",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 898,
                                  "src": "3955:6:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 934,
                                  "name": "_owner",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 869,
                                  "src": "3963:6:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 935,
                                  "name": "_name",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 865,
                                  "src": "3971:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 936,
                                  "name": "_swarmHash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 875,
                                  "src": "3978:10:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  },
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 930,
                                      "name": "tickerRegistry",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 613,
                                      "src": "3928:14:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    ],
                                    "id": 929,
                                    "name": "ITickerRegistry",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10283,
                                    "src": "3912:15:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_ITickerRegistry_$10283_$",
                                      "typeString": "type(contract ITickerRegistry)"
                                    }
                                  },
                                  "id": 931,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3912:31:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ITickerRegistry_$10283",
                                    "typeString": "contract ITickerRegistry"
                                  }
                                },
                                "id": 932,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "isReserved",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 10282,
                                "src": "3912:42:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$_t_string_memory_ptr_$_t_bytes32_$returns$_t_bool_$",
                                  "typeString": "function (string memory,address,string memory,bytes32) external returns (bool)"
                                }
                              },
                              "id": 937,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3912:77:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 938,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "3911:79:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "547279696e6720746f20757365206e6f6e2d76616c69642073796d626f6c",
                        "id": 940,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3992:32:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_522d15e8c0f5c34974d1a755d834bbedfee2966e8453ee46cce4f667231c8957",
                          "typeString": "literal_string \"Trying to use non-valid symbol\""
                        },
                        "value": "Trying to use non-valid symbol"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_522d15e8c0f5c34974d1a755d834bbedfee2966e8453ee46cce4f667231c8957",
                          "typeString": "literal_string \"Trying to use non-valid symbol\""
                        }
                      ],
                      "id": 928,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23135,
                      "src": "3902:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 941,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3902:123:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 942,
                  "nodeType": "ExpressionStatement",
                  "src": "3902:123:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 947,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 943,
                        "name": "symbols",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10182,
                        "src": "4035:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$",
                          "typeString": "mapping(string memory => address)"
                        }
                      },
                      "id": 945,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 944,
                        "name": "symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 898,
                        "src": "4043:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4035:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 946,
                      "name": "_securityToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 871,
                      "src": "4053:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "4035:32:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 948,
                  "nodeType": "ExpressionStatement",
                  "src": "4035:32:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 956,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 949,
                        "name": "securityTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10178,
                        "src": "4077:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SecurityTokenData_$10174_storage_$",
                          "typeString": "mapping(address => struct ISecurityTokenRegistry.SecurityTokenData storage ref)"
                        }
                      },
                      "id": 951,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 950,
                        "name": "_securityToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 871,
                        "src": "4092:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4077:30:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_SecurityTokenData_$10174_storage",
                        "typeString": "struct ISecurityTokenRegistry.SecurityTokenData storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 953,
                          "name": "symbol",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 898,
                          "src": "4128:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 954,
                          "name": "_tokenDetails",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 873,
                          "src": "4136:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        ],
                        "id": 952,
                        "name": "SecurityTokenData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10174,
                        "src": "4110:17:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_SecurityTokenData_$10174_storage_ptr_$",
                          "typeString": "type(struct ISecurityTokenRegistry.SecurityTokenData storage pointer)"
                        }
                      },
                      "id": 955,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4110:40:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_SecurityTokenData_$10174_memory",
                        "typeString": "struct ISecurityTokenRegistry.SecurityTokenData memory"
                      }
                    },
                    "src": "4077:73:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_SecurityTokenData_$10174_storage",
                      "typeString": "struct ISecurityTokenRegistry.SecurityTokenData storage ref"
                    }
                  },
                  "id": 957,
                  "nodeType": "ExpressionStatement",
                  "src": "4077:73:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 959,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 865,
                        "src": "4191:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 960,
                        "name": "symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 898,
                        "src": "4198:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 961,
                        "name": "_securityToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 871,
                        "src": "4206:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 962,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23133,
                        "src": "4222:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 958,
                      "name": "LogAddCustomSecurityToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 722,
                      "src": "4165:25:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (string memory,string memory,address,uint256)"
                      }
                    },
                    "id": 963,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4165:61:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 964,
                  "nodeType": "EmitStatement",
                  "src": "4160:66:6"
                }
              ]
            },
            "documentation": "@notice Add a new custom (Token should follow the ISecurityToken interface) Security Token and saves it to the registry\n@param _name Name of the token\n@param _symbol Ticker symbol of the security token\n@param _owner Owner of the token\n@param _securityToken Address of the securityToken\n@param _tokenDetails off-chain details of the token\n@param _swarmHash off-chain details about the issuer company",
            "id": 966,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 878,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 877,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "3502:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3502:9:6"
              }
            ],
            "name": "addCustomSecurityToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 876,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 865,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 966,
                  "src": "3383:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 864,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3383:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 867,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 966,
                  "src": "3397:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 866,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3397:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 869,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 966,
                  "src": "3413:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 868,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3413:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 871,
                  "name": "_securityToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 966,
                  "src": "3429:22:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 870,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3429:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 873,
                  "name": "_tokenDetails",
                  "nodeType": "VariableDeclaration",
                  "scope": 966,
                  "src": "3453:20:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 872,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3453:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 875,
                  "name": "_swarmHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 966,
                  "src": "3475:18:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 874,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3475:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3382:112:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 879,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3512:0:6"
            },
            "scope": 1143,
            "src": "3351:882:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 985,
              "nodeType": "Block",
              "src": "4610:105:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 975,
                      "name": "protocolVersion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10165,
                      "src": "4620:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 976,
                      "name": "_version",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 970,
                      "src": "4638:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "4620:26:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 978,
                  "nodeType": "ExpressionStatement",
                  "src": "4620:26:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 983,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 979,
                        "name": "protocolVersionST",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10169,
                        "src": "4656:17:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                          "typeString": "mapping(bytes32 => address)"
                        }
                      },
                      "id": 981,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 980,
                        "name": "_version",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 970,
                        "src": "4674:8:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4656:27:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 982,
                      "name": "_stVersionProxyAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 968,
                      "src": "4686:22:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "4656:52:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 984,
                  "nodeType": "ExpressionStatement",
                  "src": "4656:52:6"
                }
              ]
            },
            "documentation": "@notice Changes the protocol version and the SecurityToken contract\n@notice Used only by Polymath to upgrade the SecurityToken contract and add more functionalities to future versions\n@notice Changing versions does not affect existing tokens.",
            "id": 986,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 973,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 972,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "4600:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4600:9:6"
              }
            ],
            "name": "setProtocolVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 971,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 968,
                  "name": "_stVersionProxyAddress",
                  "nodeType": "VariableDeclaration",
                  "scope": 986,
                  "src": "4543:30:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 967,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4543:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 970,
                  "name": "_version",
                  "nodeType": "VariableDeclaration",
                  "scope": 986,
                  "src": "4575:16:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 969,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4575:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4542:50:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 974,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4610:0:6"
            },
            "scope": 1143,
            "src": "4515:200:6",
            "stateMutability": "nonpayable",
            "superFunction": 10206,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1003,
              "nodeType": "Block",
              "src": "5044:90:6",
              "statements": [
                {
                  "assignments": [
                    994
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 994,
                      "name": "__symbol",
                      "nodeType": "VariableDeclaration",
                      "scope": 1004,
                      "src": "5054:22:6",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 993,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "5054:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 998,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 996,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 988,
                        "src": "5085:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 995,
                      "name": "upper",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9527,
                      "src": "5079:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (string memory) pure returns (string memory)"
                      }
                    },
                    "id": 997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5079:14:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5054:39:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 999,
                      "name": "symbols",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10182,
                      "src": "5110:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$",
                        "typeString": "mapping(string memory => address)"
                      }
                    },
                    "id": 1001,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1000,
                      "name": "__symbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 994,
                      "src": "5118:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5110:17:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 992,
                  "id": 1002,
                  "nodeType": "Return",
                  "src": "5103:24:6"
                }
              ]
            },
            "documentation": "@notice Get security token address by ticker name\n@param _symbol Symbol of the Scurity token\n@return address",
            "id": 1004,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getSecurityTokenAddress",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 989,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 988,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 1004,
                  "src": "4998:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 987,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4998:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4997:16:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 992,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 991,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1004,
                  "src": "5035:7:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 990,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5035:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5034:9:6"
            },
            "scope": 1143,
            "src": "4965:169:6",
            "stateMutability": "view",
            "superFunction": 10213,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1030,
              "nodeType": "Block",
              "src": "5436:194:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1015,
                            "name": "securityTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10178,
                            "src": "5467:14:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SecurityTokenData_$10174_storage_$",
                              "typeString": "mapping(address => struct ISecurityTokenRegistry.SecurityTokenData storage ref)"
                            }
                          },
                          "id": 1017,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1016,
                            "name": "_securityToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1006,
                            "src": "5482:14:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5467:30:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SecurityTokenData_$10174_storage",
                            "typeString": "struct ISecurityTokenRegistry.SecurityTokenData storage ref"
                          }
                        },
                        "id": 1018,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "symbol",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10171,
                        "src": "5467:37:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1020,
                                "name": "_securityToken",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1006,
                                "src": "5533:14:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 1019,
                              "name": "ISecurityToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10159,
                              "src": "5518:14:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ISecurityToken_$10159_$",
                                "typeString": "type(contract ISecurityToken)"
                              }
                            },
                            "id": 1021,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5518:30:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ISecurityToken_$10159",
                              "typeString": "contract ISecurityToken"
                            }
                          },
                          "id": 1022,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22582,
                          "src": "5518:36:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 1023,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5518:38:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1024,
                            "name": "securityTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10178,
                            "src": "5570:14:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SecurityTokenData_$10174_storage_$",
                              "typeString": "mapping(address => struct ISecurityTokenRegistry.SecurityTokenData storage ref)"
                            }
                          },
                          "id": 1026,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1025,
                            "name": "_securityToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1006,
                            "src": "5585:14:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5570:30:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SecurityTokenData_$10174_storage",
                            "typeString": "struct ISecurityTokenRegistry.SecurityTokenData storage ref"
                          }
                        },
                        "id": 1027,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "tokenDetails",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10173,
                        "src": "5570:43:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      }
                    ],
                    "id": 1028,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "5453:170:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_string_storage_$_t_address_$_t_string_storage_$",
                      "typeString": "tuple(string storage ref,address,string storage ref)"
                    }
                  },
                  "functionReturnParameters": 1014,
                  "id": 1029,
                  "nodeType": "Return",
                  "src": "5446:177:6"
                }
              ]
            },
            "documentation": "@notice Get security token data by its address\n@param _securityToken Address of the Scurity token\n@return string\n@return address\n@return string",
            "id": 1031,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getSecurityTokenData",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1007,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1006,
                  "name": "_securityToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 1031,
                  "src": "5366:22:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1005,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5366:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5365:24:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 1014,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1009,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1031,
                  "src": "5411:6:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1008,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "5411:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1011,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1031,
                  "src": "5419:7:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1010,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5419:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1013,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1031,
                  "src": "5428:6:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1012,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "5428:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5410:25:6"
            },
            "scope": 1143,
            "src": "5336:294:6",
            "stateMutability": "view",
            "superFunction": 10224,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1052,
              "nodeType": "Block",
              "src": "5857:98:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 1049,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1040,
                                      "name": "securityTokens",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10178,
                                      "src": "5891:14:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SecurityTokenData_$10174_storage_$",
                                        "typeString": "mapping(address => struct ISecurityTokenRegistry.SecurityTokenData storage ref)"
                                      }
                                    },
                                    "id": 1042,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1041,
                                      "name": "_securityToken",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1033,
                                      "src": "5906:14:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "5891:30:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_SecurityTokenData_$10174_storage",
                                      "typeString": "struct ISecurityTokenRegistry.SecurityTokenData storage ref"
                                    }
                                  },
                                  "id": 1043,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "symbol",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 10171,
                                  "src": "5891:37:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                ],
                                "id": 1039,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "5885:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": "bytes"
                              },
                              "id": 1044,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5885:44:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage",
                                "typeString": "bytes storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_storage",
                                "typeString": "bytes storage ref"
                              }
                            ],
                            "id": 1038,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23125,
                            "src": "5875:9:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                              "typeString": "function () pure returns (bytes32)"
                            }
                          },
                          "id": 1045,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5875:55:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "",
                              "id": 1047,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5944:2:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              "value": ""
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              }
                            ],
                            "id": 1046,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23125,
                            "src": "5934:9:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                              "typeString": "function () pure returns (bytes32)"
                            }
                          },
                          "id": 1048,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5934:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "5875:72:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 1050,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "5874:74:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1037,
                  "id": 1051,
                  "nodeType": "Return",
                  "src": "5867:81:6"
                }
              ]
            },
            "documentation": "@notice Check that Security Token is registered\n@param _securityToken Address of the Scurity token\n@return bool",
            "id": 1053,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isSecurityToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1034,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1033,
                  "name": "_securityToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 1053,
                  "src": "5806:22:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1032,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5806:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5805:24:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 1037,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1036,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1053,
                  "src": "5851:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1035,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5851:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5850:6:6"
            },
            "scope": 1143,
            "src": "5781:174:6",
            "stateMutability": "view",
            "superFunction": 10231,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1075,
              "nodeType": "Block",
              "src": "6199:183:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1063,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1061,
                          "name": "registrationFee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 698,
                          "src": "6217:15:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1062,
                          "name": "_registrationFee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1055,
                          "src": "6236:16:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6217:35:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1060,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23134,
                      "src": "6209:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1064,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6209:44:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1065,
                  "nodeType": "ExpressionStatement",
                  "src": "6209:44:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1067,
                        "name": "registrationFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 698,
                        "src": "6297:15:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1068,
                        "name": "_registrationFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1055,
                        "src": "6314:16:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1066,
                      "name": "LogChangePolyRegistrationFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 704,
                      "src": "6268:28:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 1069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6268:63:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1070,
                  "nodeType": "EmitStatement",
                  "src": "6263:68:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1073,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1071,
                      "name": "registrationFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 698,
                      "src": "6341:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1072,
                      "name": "_registrationFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1055,
                      "src": "6359:16:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6341:34:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1074,
                  "nodeType": "ExpressionStatement",
                  "src": "6341:34:6"
                }
              ]
            },
            "documentation": "@notice set the ticker registration fee in POLY tokens\n@param _registrationFee registration fee in POLY tokens (base 18 decimals)",
            "id": 1076,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1058,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1057,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "6189:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6189:9:6"
              }
            ],
            "name": "changePolyRegistrationFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1056,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1055,
                  "name": "_registrationFee",
                  "nodeType": "VariableDeclaration",
                  "scope": 1076,
                  "src": "6156:24:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1054,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6156:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6155:26:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 1059,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6199:0:6"
            },
            "scope": 1143,
            "src": "6121:261:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1107,
              "nodeType": "Block",
              "src": "6717:186:6",
              "statements": [
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1088,
                        "name": "_currency",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1078,
                        "src": "6748:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1089,
                        "name": "_denominatedCurrency",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1080,
                        "src": "6759:20:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1090,
                        "name": "_oracle",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1082,
                        "src": "6781:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1091,
                            "name": "oracles",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10188,
                            "src": "6790:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                              "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                            }
                          },
                          "id": 1093,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1092,
                            "name": "_currency",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1078,
                            "src": "6798:9:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6790:18:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                            "typeString": "mapping(bytes32 => address)"
                          }
                        },
                        "id": 1095,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1094,
                          "name": "_denominatedCurrency",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1080,
                          "src": "6809:20:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "6790:40:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1096,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23133,
                        "src": "6832:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1087,
                      "name": "LogChangeOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 734,
                      "src": "6732:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,address,uint256)"
                      }
                    },
                    "id": 1097,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6732:104:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1098,
                  "nodeType": "EmitStatement",
                  "src": "6727:109:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1105,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1099,
                          "name": "oracles",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10188,
                          "src": "6846:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                          }
                        },
                        "id": 1102,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1100,
                          "name": "_currency",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1078,
                          "src": "6854:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "6846:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                          "typeString": "mapping(bytes32 => address)"
                        }
                      },
                      "id": 1103,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1101,
                        "name": "_denominatedCurrency",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1080,
                        "src": "6865:20:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6846:40:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1104,
                      "name": "_oracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1082,
                      "src": "6889:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "6846:50:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1106,
                  "nodeType": "ExpressionStatement",
                  "src": "6846:50:6"
                }
              ]
            },
            "documentation": "@notice Change address of oracle for currency pair\n@param _currency Symbol of currency\n@param _denominatedCurrency Symbol of denominated currency\n@param _oracle Address of IOracle",
            "id": 1108,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1085,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1084,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "6707:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6707:9:6"
              }
            ],
            "name": "changeOracle",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1083,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1078,
                  "name": "_currency",
                  "nodeType": "VariableDeclaration",
                  "scope": 1108,
                  "src": "6634:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1077,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6634:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1080,
                  "name": "_denominatedCurrency",
                  "nodeType": "VariableDeclaration",
                  "scope": 1108,
                  "src": "6653:28:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1079,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6653:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1082,
                  "name": "_oracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 1108,
                  "src": "6683:15:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1081,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6683:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6633:66:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 1086,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6717:0:6"
            },
            "scope": 1143,
            "src": "6612:291:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1123,
              "nodeType": "Block",
              "src": "7210:64:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1117,
                        "name": "oracles",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10188,
                        "src": "7227:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                          "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                        }
                      },
                      "id": 1119,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1118,
                        "name": "_currency",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1110,
                        "src": "7235:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7227:18:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                        "typeString": "mapping(bytes32 => address)"
                      }
                    },
                    "id": 1121,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1120,
                      "name": "_denominatedCurrency",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1112,
                      "src": "7246:20:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7227:40:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 1116,
                  "id": 1122,
                  "nodeType": "Return",
                  "src": "7220:47:6"
                }
              ]
            },
            "documentation": "@notice Get oracle for currency pair\n@param _currency Symbol of currency\n@param _denominatedCurrency Symbol of denominated currency\n@return address of IOracle",
            "id": 1124,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOracle",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1113,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1110,
                  "name": "_currency",
                  "nodeType": "VariableDeclaration",
                  "scope": 1124,
                  "src": "7131:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1109,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7131:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1112,
                  "name": "_denominatedCurrency",
                  "nodeType": "VariableDeclaration",
                  "scope": 1124,
                  "src": "7150:28:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1111,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7150:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7130:49:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 1116,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1115,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1124,
                  "src": "7201:7:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1114,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7201:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7200:9:6"
            },
            "scope": 1143,
            "src": "7112:162:6",
            "stateMutability": "view",
            "superFunction": 10240,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1132,
              "nodeType": "Block",
              "src": "7377:27:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1129,
                      "name": "_unpause",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 470,
                      "src": "7387:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1130,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7387:10:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1131,
                  "nodeType": "ExpressionStatement",
                  "src": "7387:10:6"
                }
              ]
            },
            "documentation": "@notice pause registration function",
            "id": 1133,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1127,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1126,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "7366:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7366:9:6"
              }
            ],
            "name": "unpause",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1125,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7356:2:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 1128,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7377:0:6"
            },
            "scope": 1143,
            "src": "7340:64:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1141,
              "nodeType": "Block",
              "src": "7505:25:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1138,
                      "name": "_pause",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 456,
                      "src": "7515:6:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1139,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7515:8:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1140,
                  "nodeType": "ExpressionStatement",
                  "src": "7515:8:6"
                }
              ]
            },
            "documentation": "@notice unpause registration function",
            "id": 1142,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1136,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1135,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "7495:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7495:9:6"
              }
            ],
            "name": "pause",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1134,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7485:2:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 1137,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7505:0:6"
            },
            "scope": 1143,
            "src": "7471:59:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1144,
        "src": "391:7142:6"
      }
    ],
    "src": "0:7534:6"
  },
  "legacyAST": {
    "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/SecurityTokenRegistry.sol",
    "exportedSymbols": {
      "SecurityTokenRegistry": [
        1143
      ]
    },
    "id": 1144,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 678,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:6"
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/ITickerRegistry.sol",
        "file": "./interfaces/ITickerRegistry.sol",
        "id": 679,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 10284,
        "src": "26:42:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/tokens/SecurityToken.sol",
        "file": "./tokens/SecurityToken.sol",
        "id": 680,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 22358,
        "src": "69:36:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/ISTProxy.sol",
        "file": "./interfaces/ISTProxy.sol",
        "id": 681,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 10071,
        "src": "106:35:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/ISecurityTokenRegistry.sol",
        "file": "./interfaces/ISecurityTokenRegistry.sol",
        "id": 682,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 10242,
        "src": "142:49:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/Pausable.sol",
        "file": "./Pausable.sol",
        "id": 683,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 472,
        "src": "192:24:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/RegistryUpdater.sol",
        "file": "./RegistryUpdater.sol",
        "id": 684,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 677,
        "src": "217:31:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/ReclaimTokens.sol",
        "file": "./ReclaimTokens.sol",
        "id": 685,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 600,
        "src": "249:29:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/helpers/Util.sol",
        "file": "./helpers/Util.sol",
        "id": 686,
        "nodeType": "ImportDirective",
        "scope": 1144,
        "sourceUnit": 9529,
        "src": "279:28:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 687,
              "name": "ISecurityTokenRegistry",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10241,
              "src": "425:22:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ISecurityTokenRegistry_$10241",
                "typeString": "contract ISecurityTokenRegistry"
              }
            },
            "id": 688,
            "nodeType": "InheritanceSpecifier",
            "src": "425:22:6"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 689,
              "name": "Util",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 9528,
              "src": "449:4:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Util_$9528",
                "typeString": "contract Util"
              }
            },
            "id": 690,
            "nodeType": "InheritanceSpecifier",
            "src": "449:4:6"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 691,
              "name": "Pausable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 471,
              "src": "455:8:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Pausable_$471",
                "typeString": "contract Pausable"
              }
            },
            "id": 692,
            "nodeType": "InheritanceSpecifier",
            "src": "455:8:6"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 693,
              "name": "RegistryUpdater",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 676,
              "src": "465:15:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RegistryUpdater_$676",
                "typeString": "contract RegistryUpdater"
              }
            },
            "id": 694,
            "nodeType": "InheritanceSpecifier",
            "src": "465:15:6"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 695,
              "name": "ReclaimTokens",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 599,
              "src": "482:13:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ReclaimTokens_$599",
                "typeString": "contract ReclaimTokens"
              }
            },
            "id": 696,
            "nodeType": "InheritanceSpecifier",
            "src": "482:13:6"
          }
        ],
        "contractDependencies": [
          471,
          599,
          676,
          9528,
          10241,
          22664
        ],
        "contractKind": "contract",
        "documentation": "@title Registry contract for issuers to register their security tokens",
        "fullyImplemented": true,
        "id": 1143,
        "linearizedBaseContracts": [
          1143,
          599,
          676,
          22664,
          471,
          9528,
          10241
        ],
        "name": "SecurityTokenRegistry",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 698,
            "name": "registrationFee",
            "nodeType": "VariableDeclaration",
            "scope": 1143,
            "src": "552:30:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 697,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "552:7:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 704,
            "name": "LogChangePolyRegistrationFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 703,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 700,
                  "indexed": false,
                  "name": "_oldFee",
                  "nodeType": "VariableDeclaration",
                  "scope": 704,
                  "src": "676:15:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 699,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "676:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 702,
                  "indexed": false,
                  "name": "_newFee",
                  "nodeType": "VariableDeclaration",
                  "scope": 704,
                  "src": "693:15:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 701,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "693:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "675:34:6"
            },
            "src": "641:69:6"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 712,
            "name": "LogNewSecurityToken",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 711,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 706,
                  "indexed": false,
                  "name": "_ticker",
                  "nodeType": "VariableDeclaration",
                  "scope": 712,
                  "src": "801:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 705,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "801:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 708,
                  "indexed": true,
                  "name": "_securityTokenAddress",
                  "nodeType": "VariableDeclaration",
                  "scope": 712,
                  "src": "817:37:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 707,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "817:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 710,
                  "indexed": true,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 712,
                  "src": "856:22:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 709,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "856:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "800:79:6"
            },
            "src": "775:105:6"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 722,
            "name": "LogAddCustomSecurityToken",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 721,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 714,
                  "indexed": false,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 722,
                  "src": "917:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 713,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "917:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 716,
                  "indexed": false,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 722,
                  "src": "931:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 715,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "931:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 718,
                  "indexed": false,
                  "name": "_securityToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 722,
                  "src": "947:22:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 717,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "947:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 720,
                  "indexed": false,
                  "name": "_addedAt",
                  "nodeType": "VariableDeclaration",
                  "scope": 722,
                  "src": "971:16:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 719,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "971:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "916:72:6"
            },
            "src": "885:104:6"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 734,
            "name": "LogChangeOracle",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 733,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 724,
                  "indexed": false,
                  "name": "_currency",
                  "nodeType": "VariableDeclaration",
                  "scope": 734,
                  "src": "1016:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 723,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1016:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 726,
                  "indexed": false,
                  "name": "_denominatedCurrency",
                  "nodeType": "VariableDeclaration",
                  "scope": 734,
                  "src": "1035:28:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 725,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1035:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 728,
                  "indexed": false,
                  "name": "_newOracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 734,
                  "src": "1065:18:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 727,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1065:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 730,
                  "indexed": false,
                  "name": "_oldOracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 734,
                  "src": "1085:18:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 729,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1085:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 732,
                  "indexed": false,
                  "name": "_now",
                  "nodeType": "VariableDeclaration",
                  "scope": 734,
                  "src": "1105:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 731,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1105:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1015:103:6"
            },
            "src": "994:125:6"
          },
          {
            "body": {
              "id": 755,
              "nodeType": "Block",
              "src": "1300:160:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 748,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 746,
                      "name": "registrationFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 698,
                      "src": "1310:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 747,
                      "name": "_registrationFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 740,
                      "src": "1328:16:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1310:34:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 749,
                  "nodeType": "ExpressionStatement",
                  "src": "1310:34:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 751,
                        "name": "_stVersionProxy",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 738,
                        "src": "1428:15:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "302e302e31",
                        "id": 752,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1445:7:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885",
                          "typeString": "literal_string \"0.0.1\""
                        },
                        "value": "0.0.1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885",
                          "typeString": "literal_string \"0.0.1\""
                        }
                      ],
                      "id": 750,
                      "name": "setProtocolVersion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        986
                      ],
                      "referencedDeclaration": 986,
                      "src": "1409:18:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 753,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1409:44:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 754,
                  "nodeType": "ExpressionStatement",
                  "src": "1409:44:6"
                }
              ]
            },
            "documentation": null,
            "id": 756,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 743,
                    "name": "_polymathRegistry",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 736,
                    "src": "1277:17:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 744,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 742,
                  "name": "RegistryUpdater",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 676,
                  "src": "1261:15:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_RegistryUpdater_$676_$",
                    "typeString": "type(contract RegistryUpdater)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1261:34:6"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 741,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 736,
                  "name": "_polymathRegistry",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "1147:25:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 735,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1147:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 738,
                  "name": "_stVersionProxy",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "1182:23:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 737,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1182:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 740,
                  "name": "_registrationFee",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "1215:24:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 739,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1215:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1137:108:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 745,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1300:0:6"
            },
            "scope": 1143,
            "src": "1125:335:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 862,
              "nodeType": "Block",
              "src": "1890:991:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 782,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 775,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 771,
                                  "name": "_name",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 758,
                                  "src": "1914:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 770,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1908:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": "bytes"
                              },
                              "id": 772,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1908:12:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 773,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1908:19:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 774,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1930:1:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1908:23:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 781,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 777,
                                  "name": "_symbol",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 760,
                                  "src": "1941:7:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 776,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1935:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": "bytes"
                              },
                              "id": 778,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1935:14:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 779,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1935:21:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 780,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1959:1:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1935:25:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1908:52:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e616d6520616e642053796d626f6c20737472696e67206c656e6774682073686f756c642062652067726561746572207468616e2030",
                        "id": 783,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1962:56:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b53ef3e67f70f18ee2273b80ae0e6740aa376258e5798f579b2f19d8d40248a3",
                          "typeString": "literal_string \"Name and Symbol string length should be greater than 0\""
                        },
                        "value": "Name and Symbol string length should be greater than 0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b53ef3e67f70f18ee2273b80ae0e6740aa376258e5798f579b2f19d8d40248a3",
                          "typeString": "literal_string \"Name and Symbol string length should be greater than 0\""
                        }
                      ],
                      "id": 769,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23135,
                      "src": "1900:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 784,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1900:119:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 785,
                  "nodeType": "ExpressionStatement",
                  "src": "1900:119:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 791,
                            "name": "_symbol",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 760,
                            "src": "2083:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 792,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23131,
                              "src": "2092:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 793,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2092:10:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 794,
                            "name": "_name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 758,
                            "src": "2104:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 788,
                                "name": "tickerRegistry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 613,
                                "src": "2053:14:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 787,
                              "name": "ITickerRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10283,
                              "src": "2037:15:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ITickerRegistry_$10283_$",
                                "typeString": "type(contract ITickerRegistry)"
                              }
                            },
                            "id": 789,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2037:31:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ITickerRegistry_$10283",
                              "typeString": "contract ITickerRegistry"
                            }
                          },
                          "id": 790,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "checkValidity",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10254,
                          "src": "2037:45:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$_t_string_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (string memory,address,string memory) external returns (bool)"
                          }
                        },
                        "id": 795,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2037:73:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "547279696e6720746f20757365206e6f6e2d76616c69642073796d626f6c",
                        "id": 796,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2112:32:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_522d15e8c0f5c34974d1a755d834bbedfee2966e8453ee46cce4f667231c8957",
                          "typeString": "literal_string \"Trying to use non-valid symbol\""
                        },
                        "value": "Trying to use non-valid symbol"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_522d15e8c0f5c34974d1a755d834bbedfee2966e8453ee46cce4f667231c8957",
                          "typeString": "literal_string \"Trying to use non-valid symbol\""
                        }
                      ],
                      "id": 786,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23135,
                      "src": "2029:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 797,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2029:116:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 798,
                  "nodeType": "ExpressionStatement",
                  "src": "2029:116:6"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 801,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 799,
                      "name": "registrationFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 698,
                      "src": "2158:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 800,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2176:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2158:19:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 815,
                  "nodeType": "IfStatement",
                  "src": "2155:179:6",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 807,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23131,
                                "src": "2229:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 808,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "2229:10:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 809,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23202,
                              "src": "2241:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_SecurityTokenRegistry_$1143",
                                "typeString": "contract SecurityTokenRegistry"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 810,
                              "name": "registrationFee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 698,
                              "src": "2247:15:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_contract$_SecurityTokenRegistry_$1143",
                                "typeString": "contract SecurityTokenRegistry"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 804,
                                  "name": "polyToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 615,
                                  "src": "2205:9:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 803,
                                "name": "ERC20",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22837,
                                "src": "2199:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_ERC20_$22837_$",
                                  "typeString": "type(contract ERC20)"
                                }
                              },
                              "id": 805,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2199:16:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ERC20_$22837",
                                "typeString": "contract ERC20"
                              }
                            },
                            "id": 806,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transferFrom",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22819,
                            "src": "2199:29:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) external returns (bool)"
                            }
                          },
                          "id": 811,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2199:64:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "4661696c6564207472616e7366657246726f6d2062656361757365206f6620737566666963656e7420416c6c6f77616e6365206973206e6f742070726f7669646564",
                          "id": 812,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2265:68:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_39f8133d9e40dc5e6b34d9a9e536ce9c723fe05af13c2feb51de7d902ca65f7f",
                            "typeString": "literal_string \"Failed transferFrom because of sufficent Allowance is not provided\""
                          },
                          "value": "Failed transferFrom because of sufficent Allowance is not provided"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_39f8133d9e40dc5e6b34d9a9e536ce9c723fe05af13c2feb51de7d902ca65f7f",
                            "typeString": "literal_string \"Failed transferFrom because of sufficent Allowance is not provided\""
                          }
                        ],
                        "id": 802,
                        "name": "require",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23134,
                          23135
                        ],
                        "referencedDeclaration": 23135,
                        "src": "2191:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                          "typeString": "function (bool,string memory) pure"
                        }
                      },
                      "id": 813,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2191:143:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 814,
                    "nodeType": "ExpressionStatement",
                    "src": "2191:143:6"
                  }
                },
                {
                  "assignments": [
                    817
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 817,
                      "name": "symbol",
                      "nodeType": "VariableDeclaration",
                      "scope": 863,
                      "src": "2344:20:6",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 816,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "2344:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 821,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 819,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 760,
                        "src": "2373:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 818,
                      "name": "upper",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9527,
                      "src": "2367:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (string memory) pure returns (string memory)"
                      }
                    },
                    "id": 820,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2367:14:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2344:37:6"
                },
                {
                  "assignments": [
                    823
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 823,
                      "name": "newSecurityTokenAddress",
                      "nodeType": "VariableDeclaration",
                      "scope": 863,
                      "src": "2391:31:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 822,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2391:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 839,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 830,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 758,
                        "src": "2495:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 831,
                        "name": "symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 817,
                        "src": "2514:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "3138",
                        "id": 832,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2534:2:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_18_by_1",
                          "typeString": "int_const 18"
                        },
                        "value": "18"
                      },
                      {
                        "argumentTypes": null,
                        "id": 833,
                        "name": "_tokenDetails",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 762,
                        "src": "2550:13:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 834,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23131,
                          "src": "2577:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 835,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2577:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 836,
                        "name": "_divisible",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 764,
                        "src": "2601:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 837,
                        "name": "polymathRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 607,
                        "src": "2625:16:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_rational_18_by_1",
                          "typeString": "int_const 18"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 825,
                              "name": "protocolVersionST",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10169,
                              "src": "2434:17:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                "typeString": "mapping(bytes32 => address)"
                              }
                            },
                            "id": 827,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 826,
                              "name": "protocolVersion",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10165,
                              "src": "2452:15:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2434:34:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 824,
                          "name": "ISTProxy",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10070,
                          "src": "2425:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_ISTProxy_$10070_$",
                            "typeString": "type(contract ISTProxy)"
                          }
                        },
                        "id": 828,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2425:44:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ISTProxy_$10070",
                          "typeString": "contract ISTProxy"
                        }
                      },
                      "id": 829,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "deployToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10069,
                      "src": "2425:56:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$_t_string_memory_ptr_$_t_address_$_t_bool_$_t_address_$returns$_t_address_$",
                        "typeString": "function (string memory,string memory,uint8,string memory,address,bool,address) external returns (address)"
                      }
                    },
                    "id": 838,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2425:226:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2391:260:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 847,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 840,
                        "name": "securityTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10178,
                        "src": "2662:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SecurityTokenData_$10174_storage_$",
                          "typeString": "mapping(address => struct ISecurityTokenRegistry.SecurityTokenData storage ref)"
                        }
                      },
                      "id": 842,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 841,
                        "name": "newSecurityTokenAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 823,
                        "src": "2677:23:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2662:39:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_SecurityTokenData_$10174_storage",
                        "typeString": "struct ISecurityTokenRegistry.SecurityTokenData storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 844,
                          "name": "symbol",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 817,
                          "src": "2722:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 845,
                          "name": "_tokenDetails",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 762,
                          "src": "2730:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        ],
                        "id": 843,
                        "name": "SecurityTokenData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10174,
                        "src": "2704:17:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_SecurityTokenData_$10174_storage_ptr_$",
                          "typeString": "type(struct ISecurityTokenRegistry.SecurityTokenData storage pointer)"
                        }
                      },
                      "id": 846,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2704:40:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_SecurityTokenData_$10174_memory",
                        "typeString": "struct ISecurityTokenRegistry.SecurityTokenData memory"
                      }
                    },
                    "src": "2662:82:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_SecurityTokenData_$10174_storage",
                      "typeString": "struct ISecurityTokenRegistry.SecurityTokenData storage ref"
                    }
                  },
                  "id": 848,
                  "nodeType": "ExpressionStatement",
                  "src": "2662:82:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 853,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 849,
                        "name": "symbols",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10182,
                        "src": "2754:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$",
                          "typeString": "mapping(string memory => address)"
                        }
                      },
                      "id": 851,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 850,
                        "name": "symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 817,
                        "src": "2762:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2754:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 852,
                      "name": "newSecurityTokenAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 823,
                      "src": "2772:23:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2754:41:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 854,
                  "nodeType": "ExpressionStatement",
                  "src": "2754:41:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 856,
                        "name": "symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 817,
                        "src": "2830:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 857,
                        "name": "newSecurityTokenAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 823,
                        "src": "2838:23:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 858,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23131,
                          "src": "2863:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 859,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2863:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 855,
                      "name": "LogNewSecurityToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 712,
                      "src": "2810:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address,address)"
                      }
                    },
                    "id": 860,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2810:64:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 861,
                  "nodeType": "EmitStatement",
                  "src": "2805:69:6"
                }
              ]
            },
            "documentation": "@notice Creates a new Security Token and saves it to the registry\n@param _name Name of the token\n@param _symbol Ticker symbol of the security token\n@param _tokenDetails off-chain details of the token\n@param _divisible Set to true if token is divisible",
            "id": 863,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 767,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 766,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 433,
                  "src": "1876:13:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1876:13:6"
              }
            ],
            "name": "generateSecurityToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 765,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 758,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 863,
                  "src": "1800:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 757,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1800:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 760,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 863,
                  "src": "1814:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 759,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1814:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 762,
                  "name": "_tokenDetails",
                  "nodeType": "VariableDeclaration",
                  "scope": 863,
                  "src": "1830:20:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 761,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1830:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 764,
                  "name": "_divisible",
                  "nodeType": "VariableDeclaration",
                  "scope": 863,
                  "src": "1852:15:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 763,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1852:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1799:69:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 768,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1890:0:6"
            },
            "scope": 1143,
            "src": "1769:1112:6",
            "stateMutability": "nonpayable",
            "superFunction": 10199,
            "visibility": "public"
          },
          {
            "body": {
              "id": 965,
              "nodeType": "Block",
              "src": "3512:721:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 893,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 886,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 882,
                                  "name": "_name",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 865,
                                  "src": "3536:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 881,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3530:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": "bytes"
                              },
                              "id": 883,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3530:12:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 884,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "3530:19:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 885,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3552:1:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "3530:23:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 892,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 888,
                                  "name": "_symbol",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 867,
                                  "src": "3563:7:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 887,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3557:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": "bytes"
                              },
                              "id": 889,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3557:14:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 890,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "3557:21:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 891,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3581:1:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "3557:25:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "3530:52:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e616d6520616e642053796d626f6c20737472696e67206c656e6774682073686f756c642062652067726561746572207468616e2030",
                        "id": 894,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3584:56:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b53ef3e67f70f18ee2273b80ae0e6740aa376258e5798f579b2f19d8d40248a3",
                          "typeString": "literal_string \"Name and Symbol string length should be greater than 0\""
                        },
                        "value": "Name and Symbol string length should be greater than 0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b53ef3e67f70f18ee2273b80ae0e6740aa376258e5798f579b2f19d8d40248a3",
                          "typeString": "literal_string \"Name and Symbol string length should be greater than 0\""
                        }
                      ],
                      "id": 880,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23135,
                      "src": "3522:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 895,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3522:119:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 896,
                  "nodeType": "ExpressionStatement",
                  "src": "3522:119:6"
                },
                {
                  "assignments": [
                    898
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 898,
                      "name": "symbol",
                      "nodeType": "VariableDeclaration",
                      "scope": 966,
                      "src": "3651:20:6",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 897,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "3651:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 902,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 900,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 867,
                        "src": "3680:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 899,
                      "name": "upper",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9527,
                      "src": "3674:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (string memory) pure returns (string memory)"
                      }
                    },
                    "id": 901,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3674:14:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3651:37:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 916,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 908,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 904,
                            "name": "_securityToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 871,
                            "src": "3706:14:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 906,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3732:1:6",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 905,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3724:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 907,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3724:10:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "3706:28:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 915,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 909,
                              "name": "symbols",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10182,
                              "src": "3738:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$",
                                "typeString": "mapping(string memory => address)"
                              }
                            },
                            "id": 911,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 910,
                              "name": "symbol",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 898,
                              "src": "3746:6:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3738:15:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 913,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3765:1:6",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 912,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3757:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 914,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3757:10:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "3738:29:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "3706:61:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "53796d626f6c20697320616c72656164792061742074686520706f6c796d617468206e6574776f726b206f7220656e746572656420736563757269747920746f6b656e2061646472657373206973203078",
                        "id": 917,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3769:83:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b175d435c4a06e63036a1d833d5aaab2f84bf001c997c717b3aae68de076621d",
                          "typeString": "literal_string \"Symbol is already at the polymath network or entered security token address is 0x\""
                        },
                        "value": "Symbol is already at the polymath network or entered security token address is 0x"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b175d435c4a06e63036a1d833d5aaab2f84bf001c997c717b3aae68de076621d",
                          "typeString": "literal_string \"Symbol is already at the polymath network or entered security token address is 0x\""
                        }
                      ],
                      "id": 903,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23135,
                      "src": "3698:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 918,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3698:155:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 919,
                  "nodeType": "ExpressionStatement",
                  "src": "3698:155:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 925,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 921,
                          "name": "_owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 869,
                          "src": "3871:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 923,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3889:1:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 922,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "3881:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 924,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3881:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3871:20:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 920,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23134,
                      "src": "3863:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 926,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3863:29:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 927,
                  "nodeType": "ExpressionStatement",
                  "src": "3863:29:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 939,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "3910:80:6",
                        "subExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 933,
                                  "name": "symbol",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 898,
                                  "src": "3955:6:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 934,
                                  "name": "_owner",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 869,
                                  "src": "3963:6:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 935,
                                  "name": "_name",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 865,
                                  "src": "3971:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 936,
                                  "name": "_swarmHash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 875,
                                  "src": "3978:10:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  },
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 930,
                                      "name": "tickerRegistry",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 613,
                                      "src": "3928:14:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    ],
                                    "id": 929,
                                    "name": "ITickerRegistry",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10283,
                                    "src": "3912:15:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_ITickerRegistry_$10283_$",
                                      "typeString": "type(contract ITickerRegistry)"
                                    }
                                  },
                                  "id": 931,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3912:31:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ITickerRegistry_$10283",
                                    "typeString": "contract ITickerRegistry"
                                  }
                                },
                                "id": 932,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "isReserved",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 10282,
                                "src": "3912:42:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$_t_string_memory_ptr_$_t_bytes32_$returns$_t_bool_$",
                                  "typeString": "function (string memory,address,string memory,bytes32) external returns (bool)"
                                }
                              },
                              "id": 937,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3912:77:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 938,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "3911:79:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "547279696e6720746f20757365206e6f6e2d76616c69642073796d626f6c",
                        "id": 940,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3992:32:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_522d15e8c0f5c34974d1a755d834bbedfee2966e8453ee46cce4f667231c8957",
                          "typeString": "literal_string \"Trying to use non-valid symbol\""
                        },
                        "value": "Trying to use non-valid symbol"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_522d15e8c0f5c34974d1a755d834bbedfee2966e8453ee46cce4f667231c8957",
                          "typeString": "literal_string \"Trying to use non-valid symbol\""
                        }
                      ],
                      "id": 928,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23135,
                      "src": "3902:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 941,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3902:123:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 942,
                  "nodeType": "ExpressionStatement",
                  "src": "3902:123:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 947,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 943,
                        "name": "symbols",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10182,
                        "src": "4035:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$",
                          "typeString": "mapping(string memory => address)"
                        }
                      },
                      "id": 945,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 944,
                        "name": "symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 898,
                        "src": "4043:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4035:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 946,
                      "name": "_securityToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 871,
                      "src": "4053:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "4035:32:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 948,
                  "nodeType": "ExpressionStatement",
                  "src": "4035:32:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 956,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 949,
                        "name": "securityTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10178,
                        "src": "4077:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SecurityTokenData_$10174_storage_$",
                          "typeString": "mapping(address => struct ISecurityTokenRegistry.SecurityTokenData storage ref)"
                        }
                      },
                      "id": 951,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 950,
                        "name": "_securityToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 871,
                        "src": "4092:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4077:30:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_SecurityTokenData_$10174_storage",
                        "typeString": "struct ISecurityTokenRegistry.SecurityTokenData storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 953,
                          "name": "symbol",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 898,
                          "src": "4128:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 954,
                          "name": "_tokenDetails",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 873,
                          "src": "4136:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        ],
                        "id": 952,
                        "name": "SecurityTokenData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10174,
                        "src": "4110:17:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_SecurityTokenData_$10174_storage_ptr_$",
                          "typeString": "type(struct ISecurityTokenRegistry.SecurityTokenData storage pointer)"
                        }
                      },
                      "id": 955,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4110:40:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_SecurityTokenData_$10174_memory",
                        "typeString": "struct ISecurityTokenRegistry.SecurityTokenData memory"
                      }
                    },
                    "src": "4077:73:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_SecurityTokenData_$10174_storage",
                      "typeString": "struct ISecurityTokenRegistry.SecurityTokenData storage ref"
                    }
                  },
                  "id": 957,
                  "nodeType": "ExpressionStatement",
                  "src": "4077:73:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 959,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 865,
                        "src": "4191:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 960,
                        "name": "symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 898,
                        "src": "4198:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 961,
                        "name": "_securityToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 871,
                        "src": "4206:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 962,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23133,
                        "src": "4222:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 958,
                      "name": "LogAddCustomSecurityToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 722,
                      "src": "4165:25:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (string memory,string memory,address,uint256)"
                      }
                    },
                    "id": 963,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4165:61:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 964,
                  "nodeType": "EmitStatement",
                  "src": "4160:66:6"
                }
              ]
            },
            "documentation": "@notice Add a new custom (Token should follow the ISecurityToken interface) Security Token and saves it to the registry\n@param _name Name of the token\n@param _symbol Ticker symbol of the security token\n@param _owner Owner of the token\n@param _securityToken Address of the securityToken\n@param _tokenDetails off-chain details of the token\n@param _swarmHash off-chain details about the issuer company",
            "id": 966,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 878,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 877,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "3502:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3502:9:6"
              }
            ],
            "name": "addCustomSecurityToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 876,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 865,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 966,
                  "src": "3383:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 864,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3383:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 867,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 966,
                  "src": "3397:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 866,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3397:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 869,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 966,
                  "src": "3413:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 868,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3413:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 871,
                  "name": "_securityToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 966,
                  "src": "3429:22:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 870,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3429:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 873,
                  "name": "_tokenDetails",
                  "nodeType": "VariableDeclaration",
                  "scope": 966,
                  "src": "3453:20:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 872,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3453:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 875,
                  "name": "_swarmHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 966,
                  "src": "3475:18:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 874,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3475:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3382:112:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 879,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3512:0:6"
            },
            "scope": 1143,
            "src": "3351:882:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 985,
              "nodeType": "Block",
              "src": "4610:105:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 975,
                      "name": "protocolVersion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10165,
                      "src": "4620:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 976,
                      "name": "_version",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 970,
                      "src": "4638:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "4620:26:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 978,
                  "nodeType": "ExpressionStatement",
                  "src": "4620:26:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 983,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 979,
                        "name": "protocolVersionST",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10169,
                        "src": "4656:17:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                          "typeString": "mapping(bytes32 => address)"
                        }
                      },
                      "id": 981,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 980,
                        "name": "_version",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 970,
                        "src": "4674:8:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4656:27:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 982,
                      "name": "_stVersionProxyAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 968,
                      "src": "4686:22:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "4656:52:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 984,
                  "nodeType": "ExpressionStatement",
                  "src": "4656:52:6"
                }
              ]
            },
            "documentation": "@notice Changes the protocol version and the SecurityToken contract\n@notice Used only by Polymath to upgrade the SecurityToken contract and add more functionalities to future versions\n@notice Changing versions does not affect existing tokens.",
            "id": 986,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 973,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 972,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "4600:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4600:9:6"
              }
            ],
            "name": "setProtocolVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 971,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 968,
                  "name": "_stVersionProxyAddress",
                  "nodeType": "VariableDeclaration",
                  "scope": 986,
                  "src": "4543:30:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 967,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4543:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 970,
                  "name": "_version",
                  "nodeType": "VariableDeclaration",
                  "scope": 986,
                  "src": "4575:16:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 969,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4575:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4542:50:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 974,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4610:0:6"
            },
            "scope": 1143,
            "src": "4515:200:6",
            "stateMutability": "nonpayable",
            "superFunction": 10206,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1003,
              "nodeType": "Block",
              "src": "5044:90:6",
              "statements": [
                {
                  "assignments": [
                    994
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 994,
                      "name": "__symbol",
                      "nodeType": "VariableDeclaration",
                      "scope": 1004,
                      "src": "5054:22:6",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 993,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "5054:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 998,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 996,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 988,
                        "src": "5085:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 995,
                      "name": "upper",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9527,
                      "src": "5079:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (string memory) pure returns (string memory)"
                      }
                    },
                    "id": 997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5079:14:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5054:39:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 999,
                      "name": "symbols",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10182,
                      "src": "5110:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$",
                        "typeString": "mapping(string memory => address)"
                      }
                    },
                    "id": 1001,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1000,
                      "name": "__symbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 994,
                      "src": "5118:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5110:17:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 992,
                  "id": 1002,
                  "nodeType": "Return",
                  "src": "5103:24:6"
                }
              ]
            },
            "documentation": "@notice Get security token address by ticker name\n@param _symbol Symbol of the Scurity token\n@return address",
            "id": 1004,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getSecurityTokenAddress",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 989,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 988,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 1004,
                  "src": "4998:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 987,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4998:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4997:16:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 992,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 991,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1004,
                  "src": "5035:7:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 990,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5035:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5034:9:6"
            },
            "scope": 1143,
            "src": "4965:169:6",
            "stateMutability": "view",
            "superFunction": 10213,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1030,
              "nodeType": "Block",
              "src": "5436:194:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1015,
                            "name": "securityTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10178,
                            "src": "5467:14:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SecurityTokenData_$10174_storage_$",
                              "typeString": "mapping(address => struct ISecurityTokenRegistry.SecurityTokenData storage ref)"
                            }
                          },
                          "id": 1017,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1016,
                            "name": "_securityToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1006,
                            "src": "5482:14:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5467:30:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SecurityTokenData_$10174_storage",
                            "typeString": "struct ISecurityTokenRegistry.SecurityTokenData storage ref"
                          }
                        },
                        "id": 1018,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "symbol",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10171,
                        "src": "5467:37:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1020,
                                "name": "_securityToken",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1006,
                                "src": "5533:14:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 1019,
                              "name": "ISecurityToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10159,
                              "src": "5518:14:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ISecurityToken_$10159_$",
                                "typeString": "type(contract ISecurityToken)"
                              }
                            },
                            "id": 1021,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5518:30:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ISecurityToken_$10159",
                              "typeString": "contract ISecurityToken"
                            }
                          },
                          "id": 1022,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22582,
                          "src": "5518:36:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 1023,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5518:38:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1024,
                            "name": "securityTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10178,
                            "src": "5570:14:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SecurityTokenData_$10174_storage_$",
                              "typeString": "mapping(address => struct ISecurityTokenRegistry.SecurityTokenData storage ref)"
                            }
                          },
                          "id": 1026,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1025,
                            "name": "_securityToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1006,
                            "src": "5585:14:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5570:30:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SecurityTokenData_$10174_storage",
                            "typeString": "struct ISecurityTokenRegistry.SecurityTokenData storage ref"
                          }
                        },
                        "id": 1027,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "tokenDetails",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10173,
                        "src": "5570:43:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      }
                    ],
                    "id": 1028,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "5453:170:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_string_storage_$_t_address_$_t_string_storage_$",
                      "typeString": "tuple(string storage ref,address,string storage ref)"
                    }
                  },
                  "functionReturnParameters": 1014,
                  "id": 1029,
                  "nodeType": "Return",
                  "src": "5446:177:6"
                }
              ]
            },
            "documentation": "@notice Get security token data by its address\n@param _securityToken Address of the Scurity token\n@return string\n@return address\n@return string",
            "id": 1031,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getSecurityTokenData",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1007,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1006,
                  "name": "_securityToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 1031,
                  "src": "5366:22:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1005,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5366:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5365:24:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 1014,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1009,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1031,
                  "src": "5411:6:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1008,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "5411:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1011,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1031,
                  "src": "5419:7:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1010,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5419:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1013,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1031,
                  "src": "5428:6:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1012,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "5428:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5410:25:6"
            },
            "scope": 1143,
            "src": "5336:294:6",
            "stateMutability": "view",
            "superFunction": 10224,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1052,
              "nodeType": "Block",
              "src": "5857:98:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 1049,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1040,
                                      "name": "securityTokens",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10178,
                                      "src": "5891:14:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SecurityTokenData_$10174_storage_$",
                                        "typeString": "mapping(address => struct ISecurityTokenRegistry.SecurityTokenData storage ref)"
                                      }
                                    },
                                    "id": 1042,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1041,
                                      "name": "_securityToken",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1033,
                                      "src": "5906:14:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "5891:30:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_SecurityTokenData_$10174_storage",
                                      "typeString": "struct ISecurityTokenRegistry.SecurityTokenData storage ref"
                                    }
                                  },
                                  "id": 1043,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "symbol",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 10171,
                                  "src": "5891:37:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                ],
                                "id": 1039,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "5885:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": "bytes"
                              },
                              "id": 1044,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5885:44:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage",
                                "typeString": "bytes storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_storage",
                                "typeString": "bytes storage ref"
                              }
                            ],
                            "id": 1038,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23125,
                            "src": "5875:9:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                              "typeString": "function () pure returns (bytes32)"
                            }
                          },
                          "id": 1045,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5875:55:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "",
                              "id": 1047,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5944:2:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              "value": ""
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              }
                            ],
                            "id": 1046,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23125,
                            "src": "5934:9:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                              "typeString": "function () pure returns (bytes32)"
                            }
                          },
                          "id": 1048,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5934:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "5875:72:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 1050,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "5874:74:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1037,
                  "id": 1051,
                  "nodeType": "Return",
                  "src": "5867:81:6"
                }
              ]
            },
            "documentation": "@notice Check that Security Token is registered\n@param _securityToken Address of the Scurity token\n@return bool",
            "id": 1053,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isSecurityToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1034,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1033,
                  "name": "_securityToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 1053,
                  "src": "5806:22:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1032,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5806:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5805:24:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 1037,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1036,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1053,
                  "src": "5851:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1035,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5851:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5850:6:6"
            },
            "scope": 1143,
            "src": "5781:174:6",
            "stateMutability": "view",
            "superFunction": 10231,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1075,
              "nodeType": "Block",
              "src": "6199:183:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1063,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1061,
                          "name": "registrationFee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 698,
                          "src": "6217:15:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1062,
                          "name": "_registrationFee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1055,
                          "src": "6236:16:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6217:35:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1060,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23134,
                      "src": "6209:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1064,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6209:44:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1065,
                  "nodeType": "ExpressionStatement",
                  "src": "6209:44:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1067,
                        "name": "registrationFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 698,
                        "src": "6297:15:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1068,
                        "name": "_registrationFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1055,
                        "src": "6314:16:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1066,
                      "name": "LogChangePolyRegistrationFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 704,
                      "src": "6268:28:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 1069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6268:63:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1070,
                  "nodeType": "EmitStatement",
                  "src": "6263:68:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1073,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1071,
                      "name": "registrationFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 698,
                      "src": "6341:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1072,
                      "name": "_registrationFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1055,
                      "src": "6359:16:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6341:34:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1074,
                  "nodeType": "ExpressionStatement",
                  "src": "6341:34:6"
                }
              ]
            },
            "documentation": "@notice set the ticker registration fee in POLY tokens\n@param _registrationFee registration fee in POLY tokens (base 18 decimals)",
            "id": 1076,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1058,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1057,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "6189:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6189:9:6"
              }
            ],
            "name": "changePolyRegistrationFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1056,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1055,
                  "name": "_registrationFee",
                  "nodeType": "VariableDeclaration",
                  "scope": 1076,
                  "src": "6156:24:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1054,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6156:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6155:26:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 1059,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6199:0:6"
            },
            "scope": 1143,
            "src": "6121:261:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1107,
              "nodeType": "Block",
              "src": "6717:186:6",
              "statements": [
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1088,
                        "name": "_currency",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1078,
                        "src": "6748:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1089,
                        "name": "_denominatedCurrency",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1080,
                        "src": "6759:20:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1090,
                        "name": "_oracle",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1082,
                        "src": "6781:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1091,
                            "name": "oracles",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10188,
                            "src": "6790:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                              "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                            }
                          },
                          "id": 1093,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1092,
                            "name": "_currency",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1078,
                            "src": "6798:9:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6790:18:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                            "typeString": "mapping(bytes32 => address)"
                          }
                        },
                        "id": 1095,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1094,
                          "name": "_denominatedCurrency",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1080,
                          "src": "6809:20:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "6790:40:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1096,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23133,
                        "src": "6832:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1087,
                      "name": "LogChangeOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 734,
                      "src": "6732:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,address,uint256)"
                      }
                    },
                    "id": 1097,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6732:104:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1098,
                  "nodeType": "EmitStatement",
                  "src": "6727:109:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1105,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1099,
                          "name": "oracles",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10188,
                          "src": "6846:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                          }
                        },
                        "id": 1102,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1100,
                          "name": "_currency",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1078,
                          "src": "6854:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "6846:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                          "typeString": "mapping(bytes32 => address)"
                        }
                      },
                      "id": 1103,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1101,
                        "name": "_denominatedCurrency",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1080,
                        "src": "6865:20:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6846:40:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1104,
                      "name": "_oracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1082,
                      "src": "6889:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "6846:50:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1106,
                  "nodeType": "ExpressionStatement",
                  "src": "6846:50:6"
                }
              ]
            },
            "documentation": "@notice Change address of oracle for currency pair\n@param _currency Symbol of currency\n@param _denominatedCurrency Symbol of denominated currency\n@param _oracle Address of IOracle",
            "id": 1108,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1085,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1084,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "6707:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6707:9:6"
              }
            ],
            "name": "changeOracle",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1083,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1078,
                  "name": "_currency",
                  "nodeType": "VariableDeclaration",
                  "scope": 1108,
                  "src": "6634:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1077,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6634:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1080,
                  "name": "_denominatedCurrency",
                  "nodeType": "VariableDeclaration",
                  "scope": 1108,
                  "src": "6653:28:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1079,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6653:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1082,
                  "name": "_oracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 1108,
                  "src": "6683:15:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1081,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6683:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6633:66:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 1086,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6717:0:6"
            },
            "scope": 1143,
            "src": "6612:291:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1123,
              "nodeType": "Block",
              "src": "7210:64:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1117,
                        "name": "oracles",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10188,
                        "src": "7227:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                          "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                        }
                      },
                      "id": 1119,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1118,
                        "name": "_currency",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1110,
                        "src": "7235:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7227:18:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                        "typeString": "mapping(bytes32 => address)"
                      }
                    },
                    "id": 1121,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1120,
                      "name": "_denominatedCurrency",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1112,
                      "src": "7246:20:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7227:40:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 1116,
                  "id": 1122,
                  "nodeType": "Return",
                  "src": "7220:47:6"
                }
              ]
            },
            "documentation": "@notice Get oracle for currency pair\n@param _currency Symbol of currency\n@param _denominatedCurrency Symbol of denominated currency\n@return address of IOracle",
            "id": 1124,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOracle",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1113,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1110,
                  "name": "_currency",
                  "nodeType": "VariableDeclaration",
                  "scope": 1124,
                  "src": "7131:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1109,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7131:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1112,
                  "name": "_denominatedCurrency",
                  "nodeType": "VariableDeclaration",
                  "scope": 1124,
                  "src": "7150:28:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1111,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7150:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7130:49:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 1116,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1115,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1124,
                  "src": "7201:7:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1114,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7201:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7200:9:6"
            },
            "scope": 1143,
            "src": "7112:162:6",
            "stateMutability": "view",
            "superFunction": 10240,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1132,
              "nodeType": "Block",
              "src": "7377:27:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1129,
                      "name": "_unpause",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 470,
                      "src": "7387:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1130,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7387:10:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1131,
                  "nodeType": "ExpressionStatement",
                  "src": "7387:10:6"
                }
              ]
            },
            "documentation": "@notice pause registration function",
            "id": 1133,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1127,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1126,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "7366:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7366:9:6"
              }
            ],
            "name": "unpause",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1125,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7356:2:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 1128,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7377:0:6"
            },
            "scope": 1143,
            "src": "7340:64:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1141,
              "nodeType": "Block",
              "src": "7505:25:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1138,
                      "name": "_pause",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 456,
                      "src": "7515:6:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1139,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7515:8:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1140,
                  "nodeType": "ExpressionStatement",
                  "src": "7515:8:6"
                }
              ]
            },
            "documentation": "@notice unpause registration function",
            "id": 1142,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1136,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1135,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "7495:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7495:9:6"
              }
            ],
            "name": "pause",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1134,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7485:2:6"
            },
            "payable": false,
            "returnParameters": {
              "id": 1137,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7505:0:6"
            },
            "scope": 1143,
            "src": "7471:59:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1144,
        "src": "391:7142:6"
      }
    ],
    "src": "0:7534:6"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {
    "15": {
      "events": {
        "0x57306ced45fbc41943378e67622b8fb30ae72b8af9f874f08a4ad963d0c14498": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "name": "_oldFee",
              "type": "uint256"
            },
            {
              "indexed": false,
              "name": "_newFee",
              "type": "uint256"
            }
          ],
          "name": "LogChangePolyRegistrationFee",
          "type": "event"
        },
        "0x2510d802a0818e71139a7680a6388bcffcd3fa686e02a0f7319488c5bdb38fcb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "name": "_ticker",
              "type": "string"
            },
            {
              "indexed": true,
              "name": "_securityTokenAddress",
              "type": "address"
            },
            {
              "indexed": true,
              "name": "_owner",
              "type": "address"
            }
          ],
          "name": "LogNewSecurityToken",
          "type": "event"
        },
        "0x64b91bbee335851d4f490bc9a6d0a60e9da265c67d0258e9f300b8a933ecb340": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "name": "_name",
              "type": "string"
            },
            {
              "indexed": false,
              "name": "_symbol",
              "type": "string"
            },
            {
              "indexed": false,
              "name": "_securityToken",
              "type": "address"
            },
            {
              "indexed": false,
              "name": "_addedAt",
              "type": "uint256"
            }
          ],
          "name": "LogAddCustomSecurityToken",
          "type": "event"
        },
        "0xa0029dce0f74d5868196d5938d257f8203acf6b961ba6fbb914212ccd96ed740": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "name": "_currency",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "name": "_denominatedCurrency",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "name": "_newOracle",
              "type": "address"
            },
            {
              "indexed": false,
              "name": "_oldOracle",
              "type": "address"
            },
            {
              "indexed": false,
              "name": "_now",
              "type": "uint256"
            }
          ],
          "name": "LogChangeOracle",
          "type": "event"
        },
        "0xf8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "name": "previousOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipRenounced",
          "type": "event"
        },
        "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "name": "previousOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "name": "newOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipTransferred",
          "type": "event"
        },
        "0x68b095021b1f40fe513109f513c66692f0b3219aee674a69f4efc57badb8201d": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "name": "_timestammp",
              "type": "uint256"
            }
          ],
          "name": "Pause",
          "type": "event"
        },
        "0xaaa520fdd7d2c83061d632fa017b0432407e798818af63ea908589fceda39ab7": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "name": "_timestamp",
              "type": "uint256"
            }
          ],
          "name": "Unpause",
          "type": "event"
        }
      },
      "links": {},
      "address": "0x724f5481766b7de76a9ac44b6b2a19aee696df3b",
      "transactionHash": "0x201ed14dc85aed3d8385abc353b6347d93f435d89a7e6cba25d1bfa3cd9a60a3"
    }
  },
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-08-21T09:48:28.933Z"
}