{
  "contractName": "MyDappGame",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x06fdde03"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "disputes",
      "outputs": [
        {
          "components": [
            {
              "name": "playerNumber",
              "type": "uint256"
            },
            {
              "name": "randomRanges",
              "type": "uint256[2][]"
            },
            {
              "name": "seed",
              "type": "bytes32"
            }
          ],
          "name": "disputeGameData",
          "type": "tuple"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x11be1997"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "refererReward",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x15196f2c"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_id",
          "type": "bytes32"
        },
        {
          "name": "_session",
          "type": "uint256"
        },
        {
          "name": "_disputeBets",
          "type": "uint256[]"
        },
        {
          "components": [
            {
              "name": "playerNumber",
              "type": "uint256"
            },
            {
              "name": "randomRanges",
              "type": "uint256[2][]"
            },
            {
              "name": "seed",
              "type": "bytes32"
            }
          ],
          "name": "_gameData",
          "type": "tuple"
        },
        {
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "openDispute",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xfe95554c"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_id",
          "type": "bytes32"
        },
        {
          "name": "_playerBalance",
          "type": "uint256"
        },
        {
          "name": "_bankrollerBalance",
          "type": "uint256"
        },
        {
          "name": "_totalBet",
          "type": "uint256"
        },
        {
          "name": "_session",
          "type": "uint256"
        },
        {
          "name": "_sign",
          "type": "bytes"
        }
      ],
      "name": "closeByConsent",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x33f278e6"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "platform",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x4bde38c8"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_id",
          "type": "bytes32"
        },
        {
          "name": "_N",
          "type": "bytes"
        },
        {
          "name": "_E",
          "type": "bytes"
        },
        {
          "name": "_rsaSignature",
          "type": "bytes"
        }
      ],
      "name": "resolveDispute",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x64629522"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_id",
          "type": "bytes32"
        },
        {
          "name": "_playerBalance",
          "type": "uint256"
        },
        {
          "name": "_bankrollerBalance",
          "type": "uint256"
        },
        {
          "name": "_totalBet",
          "type": "uint256"
        },
        {
          "name": "_session",
          "type": "uint256"
        },
        {
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "updateChannel",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x698b2fc5"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "channels",
      "outputs": [
        {
          "name": "state",
          "type": "uint8"
        },
        {
          "name": "player",
          "type": "address"
        },
        {
          "name": "bankroller",
          "type": "address"
        },
        {
          "name": "playerBalance",
          "type": "uint256"
        },
        {
          "name": "bankrollerBalance",
          "type": "uint256"
        },
        {
          "name": "totalBet",
          "type": "uint256"
        },
        {
          "name": "session",
          "type": "uint256"
        },
        {
          "name": "endBlock",
          "type": "uint256"
        },
        {
          "name": "RSAHash",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x7a7ebd7b"
    },
    {
      "constant": true,
      "inputs": [
        {
          "components": [
            {
              "name": "playerNumber",
              "type": "uint256"
            },
            {
              "name": "randomRanges",
              "type": "uint256[2][]"
            },
            {
              "name": "seed",
              "type": "bytes32"
            }
          ],
          "name": "_gameData",
          "type": "tuple"
        }
      ],
      "name": "hashGameData",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function",
      "signature": "0xada3e210"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "minBet",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x9619367d"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_id",
          "type": "bytes32"
        },
        {
          "name": "_player",
          "type": "address"
        },
        {
          "name": "_bankroller",
          "type": "address"
        },
        {
          "name": "_playerBalance",
          "type": "uint256"
        },
        {
          "name": "_bankrollerBalance",
          "type": "uint256"
        },
        {
          "name": "_openingBlock",
          "type": "uint256"
        },
        {
          "name": "_N",
          "type": "bytes"
        },
        {
          "name": "_E",
          "type": "bytes"
        },
        {
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "openChannel",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x9d76a149"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "gameDevReward",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xa09dd3af"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "signidice",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xa12fa955"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "engine",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xc9d4623f"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "developer",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xca4b208b"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "safeTime",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xdd754511"
    },
    {
      "constant": true,
      "inputs": [
        {
          "components": [
            {
              "name": "playerNumber",
              "type": "uint256"
            },
            {
              "name": "randomRanges",
              "type": "uint256[2][]"
            },
            {
              "name": "seed",
              "type": "bytes32"
            }
          ],
          "name": "_gameData",
          "type": "tuple"
        },
        {
          "name": "_bets",
          "type": "uint256[]"
        }
      ],
      "name": "checkGameData",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function",
      "signature": "0xe1e48c38"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "name": "closeByTime",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xed784626"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "bankrollReward",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xf303ea38"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "token",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xfc0c546a"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "platformReward",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xfe6551b6"
    },
    {
      "inputs": [
        {
          "name": "_engine",
          "type": "address"
        },
        {
          "name": "_token",
          "type": "address"
        },
        {
          "name": "_platform",
          "type": "address"
        },
        {
          "name": "_signidice",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor",
      "signature": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "action",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "id",
          "type": "bytes32"
        }
      ],
      "name": "logChannel",
      "type": "event",
      "signature": "0x3ca6653799ff65c4b26919c9ae0f9647c451ffa5bd5b97af26620c3278673e70"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getName",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x17d7de7c"
    }
  ],
  "bytecode": "0x6078600a90815560c060405260808190527f4d794461707047616d650000000000000000000000000000000000000000000060a09081526200004591600d9190620000ec565b503480156200005357600080fd5b50604051608080620044118339810180604052620000759190810190620001a6565b60008054600160a060020a0319908116600160a060020a0396871617909155600180548216948616949094178455600280548216938616939093179092556003805483169190941617909255601960048190556005819055600681905560075560095560088054604292169190911790556200022f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200012f57805160ff19168380011785556200015f565b828001600101855582156200015f579182015b828111156200015f57825182559160200191906001019062000142565b506200016d92915062000171565b5090565b6200018e91905b808211156200016d576000815560010162000178565b90565b60006200019f82516200021c565b9392505050565b60008060008060808587031215620001bd57600080fd5b6000620001cb878762000191565b9450506020620001de8782880162000191565b9350506040620001f18782880162000191565b9250506060620002048782880162000191565b91505092959194509250565b600160a060020a031690565b6000620002298262000210565b92915050565b6141d2806200023f6000396000f3006080604052600436106101195763ffffffff60e060020a60003504166306fdde03811461011e57806311be19971461014957806315196f2c1461017657806317d7de7c1461019857806327fb062b146101ad57806333f278e6146101cf5780634bde38c8146101ef5780636462952214610211578063698b2fc5146102315780637a7ebd7b146102515780638be2c0c3146102865780639619367d146102a65780639d76a149146102bb578063a09dd3af146102db578063a12fa955146102f0578063c9d4623f14610305578063ca4b208b1461031a578063dd7545111461033c578063e635844714610351578063ed7846261461037e578063f303ea381461039e578063fc0c546a146103b3578063fe6551b6146103c8575b600080fd5b34801561012a57600080fd5b506101336103dd565b6040516101409190613da2565b60405180910390f35b34801561015557600080fd5b50610169610164366004612fae565b61046b565b6040516101409190613fb2565b34801561018257600080fd5b5061018b610527565b6040516101409190613c8e565b3480156101a457600080fd5b5061013361052d565b3480156101b957600080fd5b506101cd6101c8366004613181565b6105c4565b005b3480156101db57600080fd5b506101cd6101ea36600461323e565b610ad9565b3480156101fb57600080fd5b50610204610ea6565b6040516101409190613d0e565b34801561021d57600080fd5b506101cd61022c3660046130d8565b610eb5565b34801561023d57600080fd5b506101cd61024c36600461323e565b6112ee565b34801561025d57600080fd5b5061027161026c366004612fae565b611747565b60405161014099989796959493929190613d1c565b34801561029257600080fd5b5061018b6102a13660046132dd565b611799565b3480156102b257600080fd5b5061018b61187c565b3480156102c757600080fd5b506101cd6102d6366004612fcc565b611882565b3480156102e757600080fd5b5061018b61215c565b3480156102fc57600080fd5b50610204612162565b34801561031157600080fd5b50610204612171565b34801561032657600080fd5b5061032f612180565b6040516101409190613c2f565b34801561034857600080fd5b5061018b61218f565b34801561035d57600080fd5b5061037161036c366004613312565b612195565b6040516101409190613c80565b34801561038a57600080fd5b506101cd610399366004612fae565b6121fc565b3480156103aa57600080fd5b5061018b612288565b3480156103bf57600080fd5b5061020461228e565b3480156103d457600080fd5b5061018b61229d565b600d805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104635780601f1061043857610100808354040283529160200191610463565b820191906000526020600020905b81548152906001019060200180831161044657829003601f168201915b505050505081565b600c60205280600052604060002060009150905080600101606060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020016000905b8282101561050e5760008481526020902060408051808201918290529160028581029091019182845b8154815260200190600101908083116104e7575050505050815260200190600101906104be565b5050509082525060029190910154602090910152905081565b60075481565b600d8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105b95780601f1061058e576101008083540402835291602001916105b9565b820191906000526020600020905b81548152906001019060200180831161059c57829003601f168201915b505050505090505b90565b60008060006105d1612a40565b6000898152600b602052604090819020815161012081019092528054829060ff1660038111156105fd57fe5b600381111561060857fe5b81528154600160a060020a036101009182900481166020808501919091526001850154821660408501526002850154606085015260038501546080850152600485015460a0850152600585015460c0850152600685015460e0850152600790940154919092015290820151339116148061069757508060400151600160a060020a031633600160a060020a0316145b15156106c15760405160e560020a62461bcd0281526004016106b890613de3565b60405180910390fd5b60e081015143106106e75760405160e560020a62461bcd0281526004016106b890613f82565b6001815160038111156106f657fe5b148061070e575060038151600381111561070c57fe5b145b151561072f5760405160e560020a62461bcd0281526004016106b890613f52565b60008a8152600b60205260409020600581015490955061075690600163ffffffff6122a316565b89146107775760405160e560020a62461bcd0281526004016106b890613db3565b61078087611799565b935073__Utils_________________________________6397aba7f98b8b8b88604051602001808560001916600019168152602001848152602001838051906020019060200280838360005b838110156107e45781810151838201526020016107cc565b505050509190910192835250506040805180830381526020928301918290528051909550909350839250908401908083835b602083106108355780518252601f199092019160209182019101610816565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822063ffffffff861660e060020a02835261087f945092508b916004019050613c9c565b60206040518083038186803b15801561089757600080fd5b505af41580156108ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108cf9190810190612f12565b8554909350600160a060020a0380851661010090920416146109065760405160e560020a62461bcd0281526004016106b890613ec2565b6109108789612195565b15156109315760405160e560020a62461bcd0281526004016106b890613e72565b60038501546000546040517fcaa824f5000000000000000000000000000000000000000000000000000000008152600160a060020a039091169063caa824f590610981908b908d90600401613fc3565b602060405180830381600087803b15801561099b57600080fd5b505af11580156109af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109d39190810190613371565b11156109f45760405160e560020a62461bcd0281526004016106b890613e52565b600a546006860154610a0c904363ffffffff6122bd16565b1015610a2c57600a54610a2690439063ffffffff6122a316565b60068601555b60408051808201825289815260208082018a905260008d8152600c8252929092208151805192955085939192610a659284920190612a60565b5060208281015180516001840190815581830151805192939192610a8f9260028701920190612aab565b50604091820151600290910155875460ff19166003178855516000805160206141798339815191529250610ac591508c90613df3565b60405180910390a150505050505050505050565b6000868152600b602052604080822081516101208101909252805483929190829060ff166003811115610b0857fe5b6003811115610b1357fe5b81528154600160a060020a036101009182900481166020808501919091526001850154821660408501526002850154606085015260038501546080850152600485015460a0850152600585015460c0850152600685015460e08501526007909401549190920152908201513391161480610ba257508060400151600160a060020a031633600160a060020a0316145b1515610bc35760405160e560020a62461bcd0281526004016106b890613de3565b60e08101514310610be95760405160e560020a62461bcd0281526004016106b890613f82565b600181516003811115610bf857fe5b1480610c105750600381516003811115610c0e57fe5b145b1515610c315760405160e560020a62461bcd0281526004016106b890613f52565b6000898152600b602090815260409182902082518083018d90528084018c9052606081018b9052608081018a905260a081018990527f010000000000000000000000000000000000000000000000000000000000000060c0820152835160a181830301815260c190910193849052805191965073__Utils_________________________________936397aba7f993919290918291908401908083835b60208310610ced5780518252601f199092019160209182019101610cce565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822063ffffffff861660e060020a028352610d379450925089916004019050613c9c565b60206040518083038186803b158015610d4f57600080fd5b505af4158015610d63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d879190810190612f12565b9150610da4836003015484600201546122a390919063ffffffff16565b610db4898963ffffffff6122a316565b14610dd45760405160e560020a62461bcd0281526004016106b890613fa2565b600160a060020a038216331415610e005760405160e560020a62461bcd0281526004016106b890613e32565b8254600160a060020a03838116610100909204161480610e2f57506001830154600160a060020a038381169116145b1515610e505760405160e560020a62461bcd0281526004016106b890613e12565b6002830188905560038301879055600583018590556004830186905560405160008051602061417983398151915290610e8a908b90613eb2565b60405180910390a1610e9b896122cf565b505050505050505050565b600254600160a060020a031681565b6000848152600b60209081526040808320600c8352818420825160608101845260018201805482526002830180548651818902810189019097528087529497939693958695610f7295858101939190889084015b82821015610f595760008481526020902060408051808201918290529160028581029091019182845b815481526020019060010190808311610f3257505050505081526020019060010190610f09565b5050509082525060029190910154602090910152611799565b915087610f8d600186600501546122a390919063ffffffff16565b84600001846040516020018085600019166000191681526020018481526020018380548015610fdb57602002820191906000526020600020905b815481526020019060010190808311610fc7575b5050918252506040805180830381526020928301918290528051909550909350839250908401908083835b602083106110255780518252601f199092019160209182019101611006565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912093506003925061105c915050565b845460ff16600381111561106c57fe5b1461108c5760405160e560020a62461bcd0281526004016106b890613dd3565b6001840154600160a060020a031633146110bb5760405160e560020a62461bcd0281526004016106b890613de3565b60078401546040518851899190819060208401908083835b602083106110f25780518252601f1990920191602091820191016110d3565b51815160209384036101000a60001901801990921691161790526040519190930181900381208c519095508c945090928392508401908083835b6020831061114b5780518252601f19909201916020918201910161112c565b51815160209384036101000a6000190180199092169116179052604080519290940182900382208282019790975281840196909652825180820384018152606090910192839052805190959294508493509185019190508083835b602083106111c55780518252601f1990920191602091820191016111a6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019161415156112185760405160e560020a62461bcd0281526004016106b890613e82565b6003546040517fc658da51000000000000000000000000000000000000000000000000000000008152600160a060020a039091169063c658da51906112679084908b908b908b90600401613cbc565b602060405180830381600087803b15801561128157600080fd5b505af1158015611295573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112b99190810190612f90565b15156112da5760405160e560020a62461bcd0281526004016106b890613f02565b6112e48886612549565b5050505050505050565b6000868152600b602052604080822081516101208101909252805483929190829060ff16600381111561131d57fe5b600381111561132857fe5b81528154600160a060020a036101009182900481166020808501919091526001850154821660408501526002850154606085015260038501546080850152600485015460a0850152600585015460c0850152600685015460e085015260079094015491909201529082015133911614806113b757508060400151600160a060020a031633600160a060020a0316145b15156113d85760405160e560020a62461bcd0281526004016106b890613de3565b60e081015143106113fe5760405160e560020a62461bcd0281526004016106b890613f82565b60018151600381111561140d57fe5b1480611425575060038151600381111561142357fe5b145b15156114465760405160e560020a62461bcd0281526004016106b890613f52565b6000898152600b602090815260409182902082518083018d90528084018c9052606081018b9052608081018a905260a08082018a90528451808303909101815260c090910193849052805191965073__Utils_________________________________936397aba7f993919290918291908401908083835b602083106114dd5780518252601f1990920191602091820191016114be565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822063ffffffff861660e060020a0283526115279450925089916004019050613c9c565b60206040518083038186803b15801561153f57600080fd5b505af4158015611553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115779190810190612f12565b91508483600501541015156115a15760405160e560020a62461bcd0281526004016106b890613ed2565b600160a060020a0382163314156115cd5760405160e560020a62461bcd0281526004016106b890613f42565b8254600160a060020a038381166101009092041614806115fc57506001830154600160a060020a038381169116145b151561161d5760405160e560020a62461bcd0281526004016106b890613dc3565b600383015460028401546116369163ffffffff6122a316565b611646898963ffffffff6122a316565b146116665760405160e560020a62461bcd0281526004016106b890613f72565b600a54600684015461167e904363ffffffff6122bd16565b101561169e57600a5461169890439063ffffffff6122a316565b60068401555b6005830185905560028301889055600380840188905560048401879055835460ff1660038111156116cb57fe5b141561171957825460ff191660011783556000898152600c60205260408120906116f58282612b01565b6000600183018181559061170c6002850182612b1f565b6002820160009055505050505b600080516020614179833981519152896040516117369190613ea2565b60405180910390a1610e9b89612665565b600b602052600090815260409020805460018201546002830154600384015460048501546005860154600687015460079097015460ff871697610100909704600160a060020a03908116979616959089565b6000816000015182602001518360400151604051602001808481526020018380516000925b8184101561180057602080850284010151604080838360005b838110156117ef5781810151838201526020016117d7565b5050505090500192600101926117be565b9485525050604080518085038152602094850191829052805190965090945084938601925090508083835b6020831061184a5780518252601f19909201916020918201910161182b565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b60095481565b600061188c612b40565b73__Utils_________________________________6397aba7f98c8c8c8c8c8c8c8c60405160200180896000191660001916815260200188600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140187600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140186815260200185815260200184815260200183805190602001908083835b6020831061194e5780518252601f19909201916020918201910161192f565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106119965780518252601f199092019160209182019101611977565b6001836020036101000a038019825116818451168082178552505050505050905001985050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310611a005780518252601f1990920191602091820191016119e1565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822063ffffffff861660e060020a028352611a4a9450925088916004019050613c9c565b60206040518083038186803b158015611a6257600080fd5b505af4158015611a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a9a9190810190612f12565b91506000808c8152600b602052604090205460ff166003811115611aba57fe5b14611ada5760405160e560020a62461bcd0281526004016106b890613f12565b43611aec87601463ffffffff6122a316565b1015611b0d5760405160e560020a62461bcd0281526004016106b890613e92565b6002546040517f155259910000000000000000000000000000000000000000000000000000000081528991600160a060020a031690631552599190611b56908e90600401613c2f565b602060405180830381600087803b158015611b7057600080fd5b505af1158015611b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ba89190810190613371565b1015611bc95760405160e560020a62461bcd0281526004016106b890613e62565b6002546040517f30ccebb5000000000000000000000000000000000000000000000000000000008152600160a060020a03909116906330ccebb590611c12903090600401613d0e565b602060405180830381600087803b158015611c2c57600080fd5b505af1158015611c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c649190810190612f90565b1515611c855760405160e560020a62461bcd0281526004016106b890613dd3565b89600160a060020a031682600160a060020a03161480611cb6575088600160a060020a031682600160a060020a0316145b8015611ccb575033600160a060020a03831614155b1515611cec5760405160e560020a62461bcd0281526004016106b890613e32565b33600160a060020a038b161480611d0b575033600160a060020a038a16145b1515611d2c5760405160e560020a62461bcd0281526004016106b890613de3565b6001546040517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03909116906323b872dd90611d79908d9030908d90600401613c3d565b602060405180830381600087803b158015611d9357600080fd5b505af1158015611da7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dcb9190810190612f90565b1515611dec5760405160e560020a62461bcd0281526004016106b890613f92565b6001546040517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03909116906323b872dd90611e39908c9030908c90600401613c3d565b602060405180830381600087803b158015611e5357600080fd5b505af1158015611e67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e8b9190810190612f90565b1515611eac5760405160e560020a62461bcd0281526004016106b890613f62565b60408051610120810190915280600181526020018b600160a060020a031681526020018a600160a060020a031681526020018981526020018881526020016000815260200160008152602001611f0c6096436122a390919063ffffffff16565b8152602001866040518082805190602001908083835b60208310611f415780518252601f199092019160209182019101611f22565b51815160209384036101000a60001901801990921691161790526040519190930181900381208b519095508b945090928392508401908083835b60208310611f9a5780518252601f199092019160209182019101611f7b565b51815160209384036101000a6000190180199092169116179052604080519290940182900382208282019790975281840196909652825180820384018152606090910192839052805190959294508493509185019190508083835b602083106120145780518252601f199092019160209182019101611ff5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916815250905080600b60008d6000191660001916815260200190815260200160002060008201518160000160006101000a81548160ff0219169083600381111561208a57fe5b02179055506020820151815474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a03928316810291909117835560408085015160018501805473ffffffffffffffffffffffffffffffffffffffff19169190941617909255606084015160028401556080840151600384015560a0840151600484015560c0840151600584015560e08401516006840155909201516007909101555160008051602061417983398151915290612147908d90613f32565b60405180910390a15050505050505050505050565b60045481565b600354600160a060020a031681565b600054600160a060020a031681565b600854600160a060020a031681565b600a5481565b600060018360200151511415806121ad575082516000115b806121ba5750825161ffff105b806121e5575068056bc75e2d631000008260008151811015156121d957fe5b90602001906020020151115b156121f2575060006121f6565b5060015b92915050565b6000818152600b60205260409020600681015443116122305760405160e560020a62461bcd0281526004016106b890613f22565b6003815460ff16600381111561224257fe5b141561225657612251826126cb565b612284565b600080516020614179833981519152826040516122739190613ef2565b60405180910390a1612284826122cf565b5050565b60055481565b600154600160a060020a031681565b60065481565b6000828201838110156122b257fe5b8091505b5092915050565b6000828211156122c957fe5b50900390565b6000818152600b602052604081206004810154909190819081908190612310906103e89061230490601463ffffffff6127cc16565b9063ffffffff6127f716565b935061232c6064612304600554876127cc90919063ffffffff16565b92508460020154915060009050846003015484111561235c57612355828563ffffffff6122bd16565b9150612386565b612383846123778588600301546122a390919063ffffffff16565b9063ffffffff6122bd16565b90505b84546123a0906101009004600160a060020a03168561280e565b60018054908601546040517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283169263a9059cbb926123f1929116908590600401613c65565b600060405180830381600087803b15801561240b57600080fd5b505af115801561241f573d6000803e3d6000fd5b505060015487546040517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316945063a9059cbb935061247892610100909204909116908690600401613c65565b600060405180830381600087803b15801561249257600080fd5b505af11580156124a6573d6000803e3d6000fd5b5050865460ff1916600290811780895560009189018290556003808a019290925590925060ff169050818111156124d957fe5b141561251c576000868152600c60205260408120906124f88282612b01565b6000600183018181559061250f6002850182612b1f565b6002820160009055505050505b600080516020614179833981519152866040516125399190613e42565b60405180910390a1505050505050565b600080612554612ba2565b6000858152600b60209081526040808320600c909252808320925490517f9ff1b6a7000000000000000000000000000000000000000000000000000000008152919550919350600160a060020a0390911690639ff1b6a7906125c19060018601908690899060040161400d565b6040805180830381600087803b1580156125da57600080fd5b505af11580156125ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126129190810190612f72565b80516002850180549091019081905560208201510160038501556040519091506000805160206141798339815191529061264d908790613e22565b60405180910390a161265e856122cf565b5050505050565b6009546000828152600b6020526040902060020154108061269557506000818152600b6020526040902060030154155b156126c857600080516020614179833981519152816040516126b79190613ee2565b60405180910390a16126c8816122cf565b50565b6000818152600b60209081526040808320600c909252808320835491517fc8c432a7000000000000000000000000000000000000000000000000000000008152929390929091600160a060020a03169063c8c432a7906127349060018601908690600401613fe8565b602060405180830381600087803b15801561274e57600080fd5b505af1158015612762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127869190810190613371565b600384015490915061279e908263ffffffff6122bd16565b600384015560028301546127b8908263ffffffff6122a316565b60028401556127c6846122cf565b50505050565b6000808315156127df57600091506122b6565b508282028284828115156127ef57fe5b04146122b257fe5b600080828481151561280557fe5b04949350505050565b6002546040517f15a523020000000000000000000000000000000000000000000000000000000081526000918291600160a060020a03909116906315a523029061285c908790600401613c2f565b6040805180830381600087803b15801561287557600080fd5b505af1158015612889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128ad9190810190612f38565b600154600854600454939550919350600160a060020a039081169263a9059cbb92909116906128ea9060649061230490899063ffffffff6127cc16565b6040518363ffffffff1660e060020a02815260040161290a929190613c65565b600060405180830381600087803b15801561292457600080fd5b505af1158015612938573d6000803e3d6000fd5b5050600154600654600160a060020a03909116925063a9059cbb9150849061296e9060649061230490899063ffffffff6127cc16565b6040518363ffffffff1660e060020a02815260040161298e929190613c65565b600060405180830381600087803b1580156129a857600080fd5b505af11580156129bc573d6000803e3d6000fd5b5050600154600754600160a060020a03909116925063a9059cbb915083906129f29060649061230490899063ffffffff6127cc16565b6040518363ffffffff1660e060020a028152600401612a12929190613c65565b600060405180830381600087803b158015612a2c57600080fd5b505af11580156112e4573d6000803e3d6000fd5b60806040519081016040528060608152602001612a5b612bbd565b905290565b828054828255906000526020600020908101928215612a9b579160200282015b82811115612a9b578251825591602001919060010190612a80565b50612aa7929150612be2565b5090565b828054828255906000526020600020906002028101928215612af5579160200282015b82811115612af5578251612ae59083906002612bfc565b5091602001919060020190612ace565b50612aa7929150612c29565b50805460008255906000526020600020908101906126c89190612be2565b50805460008255600202906000526020600020908101906126c89190612c29565b60408051610120810190915280600081526020016000600160a060020a031681526020016000600160a060020a031681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b60408051808201825290600290829080388339509192915050565b6060604051908101604052806000815260200160608152602001600080191681525090565b6105c191905b80821115612aa75760008155600101612be8565b8260028101928215612a9b5791602002820182811115612a9b578251825591602001919060010190612a80565b6105c191905b80821115612aa7576000612c438282612c4c565b50600201612c2f565b506000815560010160009055565b6000612c668235614103565b9392505050565b6000612c668251614103565b6000601f82018313612c8a57600080fd5b8135612c9d612c9882614076565b61404f565b91508181835260208401935060208101905083856040840282011115612cc257600080fd5b60005b83811015612cf05781612cd88882612d5b565b84525060209092019160409190910190600101612cc5565b5050505092915050565b6000601f82018313612d0b57600080fd5b6002612d19612c9882614097565b91508183856020840282011115612d2f57600080fd5b60005b83811015612cf05781612d458882612e93565b8452506020928301929190910190600101612d32565b6000601f82018313612d6c57600080fd5b6002612d7a612c9882614097565b91508183856020840282011115612d9057600080fd5b60005b83811015612cf05781612da68882612e38565b8452506020928301929190910190600101612d93565b6000601f82018313612dcd57600080fd5b8135612ddb612c9882614076565b91508181835260208401935060208101905083856020840282011115612e0057600080fd5b60005b83811015612cf05781612e168882612e38565b8452506020928301929190910190600101612e03565b6000612c66825161410f565b6000612c6682356105c1565b6000601f82018313612e5557600080fd5b8135612e63612c98826140b5565b91508082526020830160208301858383011115612e7f57600080fd5b612e8a838284614136565b50505092915050565b6000612c6682516105c1565b600060608284031215612eb157600080fd5b612ebb606061404f565b90506000612ec98484612e38565b825250602082013567ffffffffffffffff811115612ee657600080fd5b612ef284828501612c79565b6020830152506040612f0684828501612e38565b60408301525092915050565b600060208284031215612f2457600080fd5b6000612f308484612c6d565b949350505050565b60008060408385031215612f4b57600080fd5b6000612f578585612c6d565b9250506020612f6885828601612c6d565b9150509250929050565b600060408284031215612f8457600080fd5b6000612f308484612cfa565b600060208284031215612fa257600080fd5b6000612f308484612e2c565b600060208284031215612fc057600080fd5b6000612f308484612e38565b60008060008060008060008060006101208a8c031215612feb57600080fd5b6000612ff78c8c612e38565b99505060206130088c828d01612c5a565b98505060406130198c828d01612c5a565b975050606061302a8c828d01612e38565b965050608061303b8c828d01612e38565b95505060a061304c8c828d01612e38565b94505060c08a013567ffffffffffffffff81111561306957600080fd5b6130758c828d01612e44565b93505060e08a013567ffffffffffffffff81111561309257600080fd5b61309e8c828d01612e44565b9250506101008a013567ffffffffffffffff8111156130bc57600080fd5b6130c88c828d01612e44565b9150509295985092959850929598565b600080600080608085870312156130ee57600080fd5b60006130fa8787612e38565b945050602085013567ffffffffffffffff81111561311757600080fd5b61312387828801612e44565b935050604085013567ffffffffffffffff81111561314057600080fd5b61314c87828801612e44565b925050606085013567ffffffffffffffff81111561316957600080fd5b61317587828801612e44565b91505092959194509250565b600080600080600060a0868803121561319957600080fd5b60006131a58888612e38565b95505060206131b688828901612e38565b945050604086013567ffffffffffffffff8111156131d357600080fd5b6131df88828901612dbc565b935050606086013567ffffffffffffffff8111156131fc57600080fd5b61320888828901612e9f565b925050608086013567ffffffffffffffff81111561322557600080fd5b61323188828901612e44565b9150509295509295909350565b60008060008060008060c0878903121561325757600080fd5b60006132638989612e38565b965050602061327489828a01612e38565b955050604061328589828a01612e38565b945050606061329689828a01612e38565b93505060806132a789828a01612e38565b92505060a087013567ffffffffffffffff8111156132c457600080fd5b6132d089828a01612e44565b9150509295509295509295565b6000602082840312156132ef57600080fd5b813567ffffffffffffffff81111561330657600080fd5b612f3084828501612e9f565b6000806040838503121561332557600080fd5b823567ffffffffffffffff81111561333c57600080fd5b61334885828601612e9f565b925050602083013567ffffffffffffffff81111561336557600080fd5b612f6885828601612dbc565b60006020828403121561338357600080fd5b6000612f308484612e93565b61339881614103565b82525050565b60006133a9826140ef565b8084526020840193506133bb836140dd565b60005b828110156133eb576133d1868351613441565b6133da826140dd565b6040969096019591506001016133be565b5093949350505050565b6000613400826140f3565b808452602084019350613412836140e3565b60005b828110156133eb576134278683613483565b613430826140fd565b604096909601959150600101613415565b61344a816140f7565b613453826105c1565b60005b8281101561265e57613469858351613568565b613472826140dd565b602095909501949150600101613456565b61348c816140f7565b613495826105c1565b60005b8281101561265e576134ab858354613568565b6134b4826140fd565b602095909501949150600101613498565b60006134d0826140ef565b8084526020840193506134e2836140dd565b60005b828110156133eb576134f8868351613568565b613501826140dd565b6020969096019591506001016134e5565b600061351d826140f3565b80845260208401935061352f836140e3565b60005b828110156133eb57613545868354613568565b61354e826140fd565b602096909601959150600101613532565b6133988161410f565b613398816105c1565b600061357c826140ef565b808452613590816020860160208601614142565b6135998161416e565b9093016020019392505050565b61339881614120565b6133988161412b565b600f81527f696e76616c69642073657373696f6e0000000000000000000000000000000000602082015260400190565b601a81527f7374617465207369676e6572206973206e6f74206d656d626572000000000000602082015260400190565b600e81527f696e76616c696420737461747573000000000000000000000000000000000000602082015260400190565b600e81527f696e76616c69642073656e646572000000000000000000000000000000000000602082015260400190565b600c81527f6f70656e20646973707574650000000000000000000000000000000000000000602082015260400190565b601481527f7369676e6572206973206e6f74206d656d626572000000000000000000000000602082015260400190565b600f81527f7265736f6c766520646973707574650000000000000000000000000000000000602082015260400190565b600e81527f696e76616c6964207369676e6572000000000000000000000000000000000000602082015260400190565b600d81527f636c6f7365206368616e6e656c00000000000000000000000000000000000000602082015260400190565b600e81527f696e76616c69642070726f666974000000000000000000000000000000000000602082015260400190565b600e81527f696e76616c696420616d6f756e74000000000000000000000000000000000000602082015260400190565b601081527f696e76616c69642067616d654461746100000000000000000000000000000000602082015260400190565b600e81527f696e76616c6964207075626c6963000000000000000000000000000000000000602082015260400190565b601181527f6f757464617465207369676e6174757265000000000000000000000000000000602082015260400190565b600e81527f757064617465206368616e6e656c000000000000000000000000000000000000602082015260400190565b601081527f636c6f736520627920636f6e73656e7400000000000000000000000000000000602082015260400190565b601681527f7369676e6572206973206e6f74206120706c6179657200000000000000000000602082015260400190565b600f81527f6f7574646174652073657373696f6e0000000000000000000000000000000000602082015260400190565b600981527f67616d65206f7665720000000000000000000000000000000000000000000000602082015260400190565b600d81527f636c6f73652062792074696d6500000000000000000000000000000000000000602082015260400190565b600e81527f696e76616c696420766572696679000000000000000000000000000000000000602082015260400190565b600781527f7573656420696400000000000000000000000000000000000000000000000000602082015260400190565b600d81527f696e76616c696420626c6f636b00000000000000000000000000000000000000602082015260400190565b600c81527f6f70656e206368616e6e656c0000000000000000000000000000000000000000602082015260400190565b601481527f696e76616c69642073746174652073696e676572000000000000000000000000602082015260400190565b600d81527f696e76616c696420737461746500000000000000000000000000000000000000602082015260400190565b601c81527f6661696c207472616e7366652066726f6d2062616e6b726f6c6c657200000000602082015260400190565b601481527f696e76616c6964206e65772062616c616e636573000000000000000000000000602082015260400190565b600c81527f696e76616c69642074696d650000000000000000000000000000000000000000602082015260400190565b601981527f6661696c207472616e736665722066726f6d20706c6179657200000000000000602082015260400190565b601081527f696e76616c69642062616c616e63657300000000000000000000000000000000602082015260400190565b80516000906060840190613b9c8582613568565b5060208301518482036020860152613bb4828261339e565b9150506040830151613bc96040860182613568565b509392505050565b80546000906060840190613be4816105c1565b613bee8682613568565b50600184018583036020870152613c0583826133f5565b92505060028401549050613c18816105c1565b613c256040870182613568565b5090949350505050565b602081016121f6828461338f565b60608101613c4b828661338f565b613c5860208301856135a6565b612f306040830184613568565b60408101613c73828561338f565b612c666020830184613568565b602081016121f6828461355f565b602081016121f68284613568565b60408101613caa8285613568565b8181036020830152612f308184613571565b60808101613cca8287613568565b8181036020830152613cdc8186613571565b90508181036040830152613cf08185613571565b90508181036060830152613d048184613571565b9695505050505050565b602081016121f682846135a6565b6101208101613d2b828c6135af565b613d38602083018b61338f565b613d45604083018a61338f565b613d526060830189613568565b613d5f6080830188613568565b613d6c60a0830187613568565b613d7960c0830186613568565b613d8660e0830185613568565b613d94610100830184613568565b9a9950505050505050505050565b60208082528101612c668184613571565b602080825281016121f6816135b8565b602080825281016121f6816135e8565b602080825281016121f681613618565b602080825281016121f681613648565b60408082528101613e0381613678565b90506121f66020830184613568565b602080825281016121f6816136a8565b60408082528101613e03816136d8565b602080825281016121f681613708565b60408082528101613e0381613738565b602080825281016121f681613768565b602080825281016121f681613798565b602080825281016121f6816137c8565b602080825281016121f6816137f8565b602080825281016121f681613828565b60408082528101613e0381613858565b60408082528101613e0381613888565b602080825281016121f6816138b8565b602080825281016121f6816138e8565b60408082528101613e0381613918565b60408082528101613e0381613948565b602080825281016121f681613978565b602080825281016121f6816139a8565b602080825281016121f6816139d8565b60408082528101613e0381613a08565b602080825281016121f681613a38565b602080825281016121f681613a68565b602080825281016121f681613a98565b602080825281016121f681613ac8565b602080825281016121f681613af8565b602080825281016121f681613b28565b602080825281016121f681613b58565b60208082528101612c668184613b88565b60408082528101613fd48185613b88565b90508181036020830152612f3081846134c5565b60408082528101613ff98185613bd1565b90508181036020830152612f308184613512565b6060808252810161401e8186613bd1565b905081810360208301526140328185613512565b905081810360408301526140468184613571565b95945050505050565b60405181810167ffffffffffffffff8111828210171561406e57600080fd5b604052919050565b600067ffffffffffffffff82111561408d57600080fd5b5060209081020190565b600067ffffffffffffffff8211156140ae57600080fd5b5060200290565b600067ffffffffffffffff8211156140cc57600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b5490565b50600290565b60010190565b600160a060020a031690565b151590565b600060048210612aa757fe5b60006121f682614103565b60006121f682614114565b82818337506000910152565b60005b8381101561415d578181015183820152602001614145565b838111156127c65750506000910152565b601f01601f19169056003ca6653799ff65c4b26919c9ae0f9647c451ffa5bd5b97af26620c3278673e70a265627a7a7230582038ee7e60796ef1eb97ec1d410bdc22c529c3edc1a8deb859f661d4120fe4a83b6c6578706572696d656e74616cf50037",
  "deployedBytecode": "0x6080604052600436106101195763ffffffff60e060020a60003504166306fdde03811461011e57806311be19971461014957806315196f2c1461017657806317d7de7c1461019857806327fb062b146101ad57806333f278e6146101cf5780634bde38c8146101ef5780636462952214610211578063698b2fc5146102315780637a7ebd7b146102515780638be2c0c3146102865780639619367d146102a65780639d76a149146102bb578063a09dd3af146102db578063a12fa955146102f0578063c9d4623f14610305578063ca4b208b1461031a578063dd7545111461033c578063e635844714610351578063ed7846261461037e578063f303ea381461039e578063fc0c546a146103b3578063fe6551b6146103c8575b600080fd5b34801561012a57600080fd5b506101336103dd565b6040516101409190613da2565b60405180910390f35b34801561015557600080fd5b50610169610164366004612fae565b61046b565b6040516101409190613fb2565b34801561018257600080fd5b5061018b610527565b6040516101409190613c8e565b3480156101a457600080fd5b5061013361052d565b3480156101b957600080fd5b506101cd6101c8366004613181565b6105c4565b005b3480156101db57600080fd5b506101cd6101ea36600461323e565b610ad9565b3480156101fb57600080fd5b50610204610ea6565b6040516101409190613d0e565b34801561021d57600080fd5b506101cd61022c3660046130d8565b610eb5565b34801561023d57600080fd5b506101cd61024c36600461323e565b6112ee565b34801561025d57600080fd5b5061027161026c366004612fae565b611747565b60405161014099989796959493929190613d1c565b34801561029257600080fd5b5061018b6102a13660046132dd565b611799565b3480156102b257600080fd5b5061018b61187c565b3480156102c757600080fd5b506101cd6102d6366004612fcc565b611882565b3480156102e757600080fd5b5061018b61215c565b3480156102fc57600080fd5b50610204612162565b34801561031157600080fd5b50610204612171565b34801561032657600080fd5b5061032f612180565b6040516101409190613c2f565b34801561034857600080fd5b5061018b61218f565b34801561035d57600080fd5b5061037161036c366004613312565b612195565b6040516101409190613c80565b34801561038a57600080fd5b506101cd610399366004612fae565b6121fc565b3480156103aa57600080fd5b5061018b612288565b3480156103bf57600080fd5b5061020461228e565b3480156103d457600080fd5b5061018b61229d565b600d805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104635780601f1061043857610100808354040283529160200191610463565b820191906000526020600020905b81548152906001019060200180831161044657829003601f168201915b505050505081565b600c60205280600052604060002060009150905080600101606060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020016000905b8282101561050e5760008481526020902060408051808201918290529160028581029091019182845b8154815260200190600101908083116104e7575050505050815260200190600101906104be565b5050509082525060029190910154602090910152905081565b60075481565b600d8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105b95780601f1061058e576101008083540402835291602001916105b9565b820191906000526020600020905b81548152906001019060200180831161059c57829003601f168201915b505050505090505b90565b60008060006105d1612a40565b6000898152600b602052604090819020815161012081019092528054829060ff1660038111156105fd57fe5b600381111561060857fe5b81528154600160a060020a036101009182900481166020808501919091526001850154821660408501526002850154606085015260038501546080850152600485015460a0850152600585015460c0850152600685015460e0850152600790940154919092015290820151339116148061069757508060400151600160a060020a031633600160a060020a0316145b15156106c15760405160e560020a62461bcd0281526004016106b890613de3565b60405180910390fd5b60e081015143106106e75760405160e560020a62461bcd0281526004016106b890613f82565b6001815160038111156106f657fe5b148061070e575060038151600381111561070c57fe5b145b151561072f5760405160e560020a62461bcd0281526004016106b890613f52565b60008a8152600b60205260409020600581015490955061075690600163ffffffff6122a316565b89146107775760405160e560020a62461bcd0281526004016106b890613db3565b61078087611799565b935073__Utils_________________________________6397aba7f98b8b8b88604051602001808560001916600019168152602001848152602001838051906020019060200280838360005b838110156107e45781810151838201526020016107cc565b505050509190910192835250506040805180830381526020928301918290528051909550909350839250908401908083835b602083106108355780518252601f199092019160209182019101610816565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822063ffffffff861660e060020a02835261087f945092508b916004019050613c9c565b60206040518083038186803b15801561089757600080fd5b505af41580156108ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108cf9190810190612f12565b8554909350600160a060020a0380851661010090920416146109065760405160e560020a62461bcd0281526004016106b890613ec2565b6109108789612195565b15156109315760405160e560020a62461bcd0281526004016106b890613e72565b60038501546000546040517fcaa824f5000000000000000000000000000000000000000000000000000000008152600160a060020a039091169063caa824f590610981908b908d90600401613fc3565b602060405180830381600087803b15801561099b57600080fd5b505af11580156109af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109d39190810190613371565b11156109f45760405160e560020a62461bcd0281526004016106b890613e52565b600a546006860154610a0c904363ffffffff6122bd16565b1015610a2c57600a54610a2690439063ffffffff6122a316565b60068601555b60408051808201825289815260208082018a905260008d8152600c8252929092208151805192955085939192610a659284920190612a60565b5060208281015180516001840190815581830151805192939192610a8f9260028701920190612aab565b50604091820151600290910155875460ff19166003178855516000805160206141798339815191529250610ac591508c90613df3565b60405180910390a150505050505050505050565b6000868152600b602052604080822081516101208101909252805483929190829060ff166003811115610b0857fe5b6003811115610b1357fe5b81528154600160a060020a036101009182900481166020808501919091526001850154821660408501526002850154606085015260038501546080850152600485015460a0850152600585015460c0850152600685015460e08501526007909401549190920152908201513391161480610ba257508060400151600160a060020a031633600160a060020a0316145b1515610bc35760405160e560020a62461bcd0281526004016106b890613de3565b60e08101514310610be95760405160e560020a62461bcd0281526004016106b890613f82565b600181516003811115610bf857fe5b1480610c105750600381516003811115610c0e57fe5b145b1515610c315760405160e560020a62461bcd0281526004016106b890613f52565b6000898152600b602090815260409182902082518083018d90528084018c9052606081018b9052608081018a905260a081018990527f010000000000000000000000000000000000000000000000000000000000000060c0820152835160a181830301815260c190910193849052805191965073__Utils_________________________________936397aba7f993919290918291908401908083835b60208310610ced5780518252601f199092019160209182019101610cce565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822063ffffffff861660e060020a028352610d379450925089916004019050613c9c565b60206040518083038186803b158015610d4f57600080fd5b505af4158015610d63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d879190810190612f12565b9150610da4836003015484600201546122a390919063ffffffff16565b610db4898963ffffffff6122a316565b14610dd45760405160e560020a62461bcd0281526004016106b890613fa2565b600160a060020a038216331415610e005760405160e560020a62461bcd0281526004016106b890613e32565b8254600160a060020a03838116610100909204161480610e2f57506001830154600160a060020a038381169116145b1515610e505760405160e560020a62461bcd0281526004016106b890613e12565b6002830188905560038301879055600583018590556004830186905560405160008051602061417983398151915290610e8a908b90613eb2565b60405180910390a1610e9b896122cf565b505050505050505050565b600254600160a060020a031681565b6000848152600b60209081526040808320600c8352818420825160608101845260018201805482526002830180548651818902810189019097528087529497939693958695610f7295858101939190889084015b82821015610f595760008481526020902060408051808201918290529160028581029091019182845b815481526020019060010190808311610f3257505050505081526020019060010190610f09565b5050509082525060029190910154602090910152611799565b915087610f8d600186600501546122a390919063ffffffff16565b84600001846040516020018085600019166000191681526020018481526020018380548015610fdb57602002820191906000526020600020905b815481526020019060010190808311610fc7575b5050918252506040805180830381526020928301918290528051909550909350839250908401908083835b602083106110255780518252601f199092019160209182019101611006565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912093506003925061105c915050565b845460ff16600381111561106c57fe5b1461108c5760405160e560020a62461bcd0281526004016106b890613dd3565b6001840154600160a060020a031633146110bb5760405160e560020a62461bcd0281526004016106b890613de3565b60078401546040518851899190819060208401908083835b602083106110f25780518252601f1990920191602091820191016110d3565b51815160209384036101000a60001901801990921691161790526040519190930181900381208c519095508c945090928392508401908083835b6020831061114b5780518252601f19909201916020918201910161112c565b51815160209384036101000a6000190180199092169116179052604080519290940182900382208282019790975281840196909652825180820384018152606090910192839052805190959294508493509185019190508083835b602083106111c55780518252601f1990920191602091820191016111a6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019161415156112185760405160e560020a62461bcd0281526004016106b890613e82565b6003546040517fc658da51000000000000000000000000000000000000000000000000000000008152600160a060020a039091169063c658da51906112679084908b908b908b90600401613cbc565b602060405180830381600087803b15801561128157600080fd5b505af1158015611295573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112b99190810190612f90565b15156112da5760405160e560020a62461bcd0281526004016106b890613f02565b6112e48886612549565b5050505050505050565b6000868152600b602052604080822081516101208101909252805483929190829060ff16600381111561131d57fe5b600381111561132857fe5b81528154600160a060020a036101009182900481166020808501919091526001850154821660408501526002850154606085015260038501546080850152600485015460a0850152600585015460c0850152600685015460e085015260079094015491909201529082015133911614806113b757508060400151600160a060020a031633600160a060020a0316145b15156113d85760405160e560020a62461bcd0281526004016106b890613de3565b60e081015143106113fe5760405160e560020a62461bcd0281526004016106b890613f82565b60018151600381111561140d57fe5b1480611425575060038151600381111561142357fe5b145b15156114465760405160e560020a62461bcd0281526004016106b890613f52565b6000898152600b602090815260409182902082518083018d90528084018c9052606081018b9052608081018a905260a08082018a90528451808303909101815260c090910193849052805191965073__Utils_________________________________936397aba7f993919290918291908401908083835b602083106114dd5780518252601f1990920191602091820191016114be565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822063ffffffff861660e060020a0283526115279450925089916004019050613c9c565b60206040518083038186803b15801561153f57600080fd5b505af4158015611553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115779190810190612f12565b91508483600501541015156115a15760405160e560020a62461bcd0281526004016106b890613ed2565b600160a060020a0382163314156115cd5760405160e560020a62461bcd0281526004016106b890613f42565b8254600160a060020a038381166101009092041614806115fc57506001830154600160a060020a038381169116145b151561161d5760405160e560020a62461bcd0281526004016106b890613dc3565b600383015460028401546116369163ffffffff6122a316565b611646898963ffffffff6122a316565b146116665760405160e560020a62461bcd0281526004016106b890613f72565b600a54600684015461167e904363ffffffff6122bd16565b101561169e57600a5461169890439063ffffffff6122a316565b60068401555b6005830185905560028301889055600380840188905560048401879055835460ff1660038111156116cb57fe5b141561171957825460ff191660011783556000898152600c60205260408120906116f58282612b01565b6000600183018181559061170c6002850182612b1f565b6002820160009055505050505b600080516020614179833981519152896040516117369190613ea2565b60405180910390a1610e9b89612665565b600b602052600090815260409020805460018201546002830154600384015460048501546005860154600687015460079097015460ff871697610100909704600160a060020a03908116979616959089565b6000816000015182602001518360400151604051602001808481526020018380516000925b8184101561180057602080850284010151604080838360005b838110156117ef5781810151838201526020016117d7565b5050505090500192600101926117be565b9485525050604080518085038152602094850191829052805190965090945084938601925090508083835b6020831061184a5780518252601f19909201916020918201910161182b565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b60095481565b600061188c612b40565b73__Utils_________________________________6397aba7f98c8c8c8c8c8c8c8c60405160200180896000191660001916815260200188600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140187600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140186815260200185815260200184815260200183805190602001908083835b6020831061194e5780518252601f19909201916020918201910161192f565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106119965780518252601f199092019160209182019101611977565b6001836020036101000a038019825116818451168082178552505050505050905001985050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310611a005780518252601f1990920191602091820191016119e1565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822063ffffffff861660e060020a028352611a4a9450925088916004019050613c9c565b60206040518083038186803b158015611a6257600080fd5b505af4158015611a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a9a9190810190612f12565b91506000808c8152600b602052604090205460ff166003811115611aba57fe5b14611ada5760405160e560020a62461bcd0281526004016106b890613f12565b43611aec87601463ffffffff6122a316565b1015611b0d5760405160e560020a62461bcd0281526004016106b890613e92565b6002546040517f155259910000000000000000000000000000000000000000000000000000000081528991600160a060020a031690631552599190611b56908e90600401613c2f565b602060405180830381600087803b158015611b7057600080fd5b505af1158015611b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ba89190810190613371565b1015611bc95760405160e560020a62461bcd0281526004016106b890613e62565b6002546040517f30ccebb5000000000000000000000000000000000000000000000000000000008152600160a060020a03909116906330ccebb590611c12903090600401613d0e565b602060405180830381600087803b158015611c2c57600080fd5b505af1158015611c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c649190810190612f90565b1515611c855760405160e560020a62461bcd0281526004016106b890613dd3565b89600160a060020a031682600160a060020a03161480611cb6575088600160a060020a031682600160a060020a0316145b8015611ccb575033600160a060020a03831614155b1515611cec5760405160e560020a62461bcd0281526004016106b890613e32565b33600160a060020a038b161480611d0b575033600160a060020a038a16145b1515611d2c5760405160e560020a62461bcd0281526004016106b890613de3565b6001546040517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03909116906323b872dd90611d79908d9030908d90600401613c3d565b602060405180830381600087803b158015611d9357600080fd5b505af1158015611da7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dcb9190810190612f90565b1515611dec5760405160e560020a62461bcd0281526004016106b890613f92565b6001546040517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03909116906323b872dd90611e39908c9030908c90600401613c3d565b602060405180830381600087803b158015611e5357600080fd5b505af1158015611e67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e8b9190810190612f90565b1515611eac5760405160e560020a62461bcd0281526004016106b890613f62565b60408051610120810190915280600181526020018b600160a060020a031681526020018a600160a060020a031681526020018981526020018881526020016000815260200160008152602001611f0c6096436122a390919063ffffffff16565b8152602001866040518082805190602001908083835b60208310611f415780518252601f199092019160209182019101611f22565b51815160209384036101000a60001901801990921691161790526040519190930181900381208b519095508b945090928392508401908083835b60208310611f9a5780518252601f199092019160209182019101611f7b565b51815160209384036101000a6000190180199092169116179052604080519290940182900382208282019790975281840196909652825180820384018152606090910192839052805190959294508493509185019190508083835b602083106120145780518252601f199092019160209182019101611ff5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916815250905080600b60008d6000191660001916815260200190815260200160002060008201518160000160006101000a81548160ff0219169083600381111561208a57fe5b02179055506020820151815474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a03928316810291909117835560408085015160018501805473ffffffffffffffffffffffffffffffffffffffff19169190941617909255606084015160028401556080840151600384015560a0840151600484015560c0840151600584015560e08401516006840155909201516007909101555160008051602061417983398151915290612147908d90613f32565b60405180910390a15050505050505050505050565b60045481565b600354600160a060020a031681565b600054600160a060020a031681565b600854600160a060020a031681565b600a5481565b600060018360200151511415806121ad575082516000115b806121ba5750825161ffff105b806121e5575068056bc75e2d631000008260008151811015156121d957fe5b90602001906020020151115b156121f2575060006121f6565b5060015b92915050565b6000818152600b60205260409020600681015443116122305760405160e560020a62461bcd0281526004016106b890613f22565b6003815460ff16600381111561224257fe5b141561225657612251826126cb565b612284565b600080516020614179833981519152826040516122739190613ef2565b60405180910390a1612284826122cf565b5050565b60055481565b600154600160a060020a031681565b60065481565b6000828201838110156122b257fe5b8091505b5092915050565b6000828211156122c957fe5b50900390565b6000818152600b602052604081206004810154909190819081908190612310906103e89061230490601463ffffffff6127cc16565b9063ffffffff6127f716565b935061232c6064612304600554876127cc90919063ffffffff16565b92508460020154915060009050846003015484111561235c57612355828563ffffffff6122bd16565b9150612386565b612383846123778588600301546122a390919063ffffffff16565b9063ffffffff6122bd16565b90505b84546123a0906101009004600160a060020a03168561280e565b60018054908601546040517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283169263a9059cbb926123f1929116908590600401613c65565b600060405180830381600087803b15801561240b57600080fd5b505af115801561241f573d6000803e3d6000fd5b505060015487546040517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316945063a9059cbb935061247892610100909204909116908690600401613c65565b600060405180830381600087803b15801561249257600080fd5b505af11580156124a6573d6000803e3d6000fd5b5050865460ff1916600290811780895560009189018290556003808a019290925590925060ff169050818111156124d957fe5b141561251c576000868152600c60205260408120906124f88282612b01565b6000600183018181559061250f6002850182612b1f565b6002820160009055505050505b600080516020614179833981519152866040516125399190613e42565b60405180910390a1505050505050565b600080612554612ba2565b6000858152600b60209081526040808320600c909252808320925490517f9ff1b6a7000000000000000000000000000000000000000000000000000000008152919550919350600160a060020a0390911690639ff1b6a7906125c19060018601908690899060040161400d565b6040805180830381600087803b1580156125da57600080fd5b505af11580156125ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126129190810190612f72565b80516002850180549091019081905560208201510160038501556040519091506000805160206141798339815191529061264d908790613e22565b60405180910390a161265e856122cf565b5050505050565b6009546000828152600b6020526040902060020154108061269557506000818152600b6020526040902060030154155b156126c857600080516020614179833981519152816040516126b79190613ee2565b60405180910390a16126c8816122cf565b50565b6000818152600b60209081526040808320600c909252808320835491517fc8c432a7000000000000000000000000000000000000000000000000000000008152929390929091600160a060020a03169063c8c432a7906127349060018601908690600401613fe8565b602060405180830381600087803b15801561274e57600080fd5b505af1158015612762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127869190810190613371565b600384015490915061279e908263ffffffff6122bd16565b600384015560028301546127b8908263ffffffff6122a316565b60028401556127c6846122cf565b50505050565b6000808315156127df57600091506122b6565b508282028284828115156127ef57fe5b04146122b257fe5b600080828481151561280557fe5b04949350505050565b6002546040517f15a523020000000000000000000000000000000000000000000000000000000081526000918291600160a060020a03909116906315a523029061285c908790600401613c2f565b6040805180830381600087803b15801561287557600080fd5b505af1158015612889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128ad9190810190612f38565b600154600854600454939550919350600160a060020a039081169263a9059cbb92909116906128ea9060649061230490899063ffffffff6127cc16565b6040518363ffffffff1660e060020a02815260040161290a929190613c65565b600060405180830381600087803b15801561292457600080fd5b505af1158015612938573d6000803e3d6000fd5b5050600154600654600160a060020a03909116925063a9059cbb9150849061296e9060649061230490899063ffffffff6127cc16565b6040518363ffffffff1660e060020a02815260040161298e929190613c65565b600060405180830381600087803b1580156129a857600080fd5b505af11580156129bc573d6000803e3d6000fd5b5050600154600754600160a060020a03909116925063a9059cbb915083906129f29060649061230490899063ffffffff6127cc16565b6040518363ffffffff1660e060020a028152600401612a12929190613c65565b600060405180830381600087803b158015612a2c57600080fd5b505af11580156112e4573d6000803e3d6000fd5b60806040519081016040528060608152602001612a5b612bbd565b905290565b828054828255906000526020600020908101928215612a9b579160200282015b82811115612a9b578251825591602001919060010190612a80565b50612aa7929150612be2565b5090565b828054828255906000526020600020906002028101928215612af5579160200282015b82811115612af5578251612ae59083906002612bfc565b5091602001919060020190612ace565b50612aa7929150612c29565b50805460008255906000526020600020908101906126c89190612be2565b50805460008255600202906000526020600020908101906126c89190612c29565b60408051610120810190915280600081526020016000600160a060020a031681526020016000600160a060020a031681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b60408051808201825290600290829080388339509192915050565b6060604051908101604052806000815260200160608152602001600080191681525090565b6105c191905b80821115612aa75760008155600101612be8565b8260028101928215612a9b5791602002820182811115612a9b578251825591602001919060010190612a80565b6105c191905b80821115612aa7576000612c438282612c4c565b50600201612c2f565b506000815560010160009055565b6000612c668235614103565b9392505050565b6000612c668251614103565b6000601f82018313612c8a57600080fd5b8135612c9d612c9882614076565b61404f565b91508181835260208401935060208101905083856040840282011115612cc257600080fd5b60005b83811015612cf05781612cd88882612d5b565b84525060209092019160409190910190600101612cc5565b5050505092915050565b6000601f82018313612d0b57600080fd5b6002612d19612c9882614097565b91508183856020840282011115612d2f57600080fd5b60005b83811015612cf05781612d458882612e93565b8452506020928301929190910190600101612d32565b6000601f82018313612d6c57600080fd5b6002612d7a612c9882614097565b91508183856020840282011115612d9057600080fd5b60005b83811015612cf05781612da68882612e38565b8452506020928301929190910190600101612d93565b6000601f82018313612dcd57600080fd5b8135612ddb612c9882614076565b91508181835260208401935060208101905083856020840282011115612e0057600080fd5b60005b83811015612cf05781612e168882612e38565b8452506020928301929190910190600101612e03565b6000612c66825161410f565b6000612c6682356105c1565b6000601f82018313612e5557600080fd5b8135612e63612c98826140b5565b91508082526020830160208301858383011115612e7f57600080fd5b612e8a838284614136565b50505092915050565b6000612c6682516105c1565b600060608284031215612eb157600080fd5b612ebb606061404f565b90506000612ec98484612e38565b825250602082013567ffffffffffffffff811115612ee657600080fd5b612ef284828501612c79565b6020830152506040612f0684828501612e38565b60408301525092915050565b600060208284031215612f2457600080fd5b6000612f308484612c6d565b949350505050565b60008060408385031215612f4b57600080fd5b6000612f578585612c6d565b9250506020612f6885828601612c6d565b9150509250929050565b600060408284031215612f8457600080fd5b6000612f308484612cfa565b600060208284031215612fa257600080fd5b6000612f308484612e2c565b600060208284031215612fc057600080fd5b6000612f308484612e38565b60008060008060008060008060006101208a8c031215612feb57600080fd5b6000612ff78c8c612e38565b99505060206130088c828d01612c5a565b98505060406130198c828d01612c5a565b975050606061302a8c828d01612e38565b965050608061303b8c828d01612e38565b95505060a061304c8c828d01612e38565b94505060c08a013567ffffffffffffffff81111561306957600080fd5b6130758c828d01612e44565b93505060e08a013567ffffffffffffffff81111561309257600080fd5b61309e8c828d01612e44565b9250506101008a013567ffffffffffffffff8111156130bc57600080fd5b6130c88c828d01612e44565b9150509295985092959850929598565b600080600080608085870312156130ee57600080fd5b60006130fa8787612e38565b945050602085013567ffffffffffffffff81111561311757600080fd5b61312387828801612e44565b935050604085013567ffffffffffffffff81111561314057600080fd5b61314c87828801612e44565b925050606085013567ffffffffffffffff81111561316957600080fd5b61317587828801612e44565b91505092959194509250565b600080600080600060a0868803121561319957600080fd5b60006131a58888612e38565b95505060206131b688828901612e38565b945050604086013567ffffffffffffffff8111156131d357600080fd5b6131df88828901612dbc565b935050606086013567ffffffffffffffff8111156131fc57600080fd5b61320888828901612e9f565b925050608086013567ffffffffffffffff81111561322557600080fd5b61323188828901612e44565b9150509295509295909350565b60008060008060008060c0878903121561325757600080fd5b60006132638989612e38565b965050602061327489828a01612e38565b955050604061328589828a01612e38565b945050606061329689828a01612e38565b93505060806132a789828a01612e38565b92505060a087013567ffffffffffffffff8111156132c457600080fd5b6132d089828a01612e44565b9150509295509295509295565b6000602082840312156132ef57600080fd5b813567ffffffffffffffff81111561330657600080fd5b612f3084828501612e9f565b6000806040838503121561332557600080fd5b823567ffffffffffffffff81111561333c57600080fd5b61334885828601612e9f565b925050602083013567ffffffffffffffff81111561336557600080fd5b612f6885828601612dbc565b60006020828403121561338357600080fd5b6000612f308484612e93565b61339881614103565b82525050565b60006133a9826140ef565b8084526020840193506133bb836140dd565b60005b828110156133eb576133d1868351613441565b6133da826140dd565b6040969096019591506001016133be565b5093949350505050565b6000613400826140f3565b808452602084019350613412836140e3565b60005b828110156133eb576134278683613483565b613430826140fd565b604096909601959150600101613415565b61344a816140f7565b613453826105c1565b60005b8281101561265e57613469858351613568565b613472826140dd565b602095909501949150600101613456565b61348c816140f7565b613495826105c1565b60005b8281101561265e576134ab858354613568565b6134b4826140fd565b602095909501949150600101613498565b60006134d0826140ef565b8084526020840193506134e2836140dd565b60005b828110156133eb576134f8868351613568565b613501826140dd565b6020969096019591506001016134e5565b600061351d826140f3565b80845260208401935061352f836140e3565b60005b828110156133eb57613545868354613568565b61354e826140fd565b602096909601959150600101613532565b6133988161410f565b613398816105c1565b600061357c826140ef565b808452613590816020860160208601614142565b6135998161416e565b9093016020019392505050565b61339881614120565b6133988161412b565b600f81527f696e76616c69642073657373696f6e0000000000000000000000000000000000602082015260400190565b601a81527f7374617465207369676e6572206973206e6f74206d656d626572000000000000602082015260400190565b600e81527f696e76616c696420737461747573000000000000000000000000000000000000602082015260400190565b600e81527f696e76616c69642073656e646572000000000000000000000000000000000000602082015260400190565b600c81527f6f70656e20646973707574650000000000000000000000000000000000000000602082015260400190565b601481527f7369676e6572206973206e6f74206d656d626572000000000000000000000000602082015260400190565b600f81527f7265736f6c766520646973707574650000000000000000000000000000000000602082015260400190565b600e81527f696e76616c6964207369676e6572000000000000000000000000000000000000602082015260400190565b600d81527f636c6f7365206368616e6e656c00000000000000000000000000000000000000602082015260400190565b600e81527f696e76616c69642070726f666974000000000000000000000000000000000000602082015260400190565b600e81527f696e76616c696420616d6f756e74000000000000000000000000000000000000602082015260400190565b601081527f696e76616c69642067616d654461746100000000000000000000000000000000602082015260400190565b600e81527f696e76616c6964207075626c6963000000000000000000000000000000000000602082015260400190565b601181527f6f757464617465207369676e6174757265000000000000000000000000000000602082015260400190565b600e81527f757064617465206368616e6e656c000000000000000000000000000000000000602082015260400190565b601081527f636c6f736520627920636f6e73656e7400000000000000000000000000000000602082015260400190565b601681527f7369676e6572206973206e6f74206120706c6179657200000000000000000000602082015260400190565b600f81527f6f7574646174652073657373696f6e0000000000000000000000000000000000602082015260400190565b600981527f67616d65206f7665720000000000000000000000000000000000000000000000602082015260400190565b600d81527f636c6f73652062792074696d6500000000000000000000000000000000000000602082015260400190565b600e81527f696e76616c696420766572696679000000000000000000000000000000000000602082015260400190565b600781527f7573656420696400000000000000000000000000000000000000000000000000602082015260400190565b600d81527f696e76616c696420626c6f636b00000000000000000000000000000000000000602082015260400190565b600c81527f6f70656e206368616e6e656c0000000000000000000000000000000000000000602082015260400190565b601481527f696e76616c69642073746174652073696e676572000000000000000000000000602082015260400190565b600d81527f696e76616c696420737461746500000000000000000000000000000000000000602082015260400190565b601c81527f6661696c207472616e7366652066726f6d2062616e6b726f6c6c657200000000602082015260400190565b601481527f696e76616c6964206e65772062616c616e636573000000000000000000000000602082015260400190565b600c81527f696e76616c69642074696d650000000000000000000000000000000000000000602082015260400190565b601981527f6661696c207472616e736665722066726f6d20706c6179657200000000000000602082015260400190565b601081527f696e76616c69642062616c616e63657300000000000000000000000000000000602082015260400190565b80516000906060840190613b9c8582613568565b5060208301518482036020860152613bb4828261339e565b9150506040830151613bc96040860182613568565b509392505050565b80546000906060840190613be4816105c1565b613bee8682613568565b50600184018583036020870152613c0583826133f5565b92505060028401549050613c18816105c1565b613c256040870182613568565b5090949350505050565b602081016121f6828461338f565b60608101613c4b828661338f565b613c5860208301856135a6565b612f306040830184613568565b60408101613c73828561338f565b612c666020830184613568565b602081016121f6828461355f565b602081016121f68284613568565b60408101613caa8285613568565b8181036020830152612f308184613571565b60808101613cca8287613568565b8181036020830152613cdc8186613571565b90508181036040830152613cf08185613571565b90508181036060830152613d048184613571565b9695505050505050565b602081016121f682846135a6565b6101208101613d2b828c6135af565b613d38602083018b61338f565b613d45604083018a61338f565b613d526060830189613568565b613d5f6080830188613568565b613d6c60a0830187613568565b613d7960c0830186613568565b613d8660e0830185613568565b613d94610100830184613568565b9a9950505050505050505050565b60208082528101612c668184613571565b602080825281016121f6816135b8565b602080825281016121f6816135e8565b602080825281016121f681613618565b602080825281016121f681613648565b60408082528101613e0381613678565b90506121f66020830184613568565b602080825281016121f6816136a8565b60408082528101613e03816136d8565b602080825281016121f681613708565b60408082528101613e0381613738565b602080825281016121f681613768565b602080825281016121f681613798565b602080825281016121f6816137c8565b602080825281016121f6816137f8565b602080825281016121f681613828565b60408082528101613e0381613858565b60408082528101613e0381613888565b602080825281016121f6816138b8565b602080825281016121f6816138e8565b60408082528101613e0381613918565b60408082528101613e0381613948565b602080825281016121f681613978565b602080825281016121f6816139a8565b602080825281016121f6816139d8565b60408082528101613e0381613a08565b602080825281016121f681613a38565b602080825281016121f681613a68565b602080825281016121f681613a98565b602080825281016121f681613ac8565b602080825281016121f681613af8565b602080825281016121f681613b28565b602080825281016121f681613b58565b60208082528101612c668184613b88565b60408082528101613fd48185613b88565b90508181036020830152612f3081846134c5565b60408082528101613ff98185613bd1565b90508181036020830152612f308184613512565b6060808252810161401e8186613bd1565b905081810360208301526140328185613512565b905081810360408301526140468184613571565b95945050505050565b60405181810167ffffffffffffffff8111828210171561406e57600080fd5b604052919050565b600067ffffffffffffffff82111561408d57600080fd5b5060209081020190565b600067ffffffffffffffff8211156140ae57600080fd5b5060200290565b600067ffffffffffffffff8211156140cc57600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b5490565b50600290565b60010190565b600160a060020a031690565b151590565b600060048210612aa757fe5b60006121f682614103565b60006121f682614114565b82818337506000910152565b60005b8381101561415d578181015183820152602001614145565b838111156127c65750506000910152565b601f01601f19169056003ca6653799ff65c4b26919c9ae0f9647c451ffa5bd5b97af26620c3278673e70a265627a7a7230582038ee7e60796ef1eb97ec1d410bdc22c529c3edc1a8deb859f661d4120fe4a83b6c6578706572696d656e74616cf50037",
  "sourceMap": "1309:3:5:-;1275:38;;;;144:33:4;102:604;144:33;102:604;144:33;;;;;;;;;;;;;;:::i;:::-;;184:437;8:9:-1;5:2;;;30:1;27;20:12;5:2;184:437:4;;;;;;;;;;;;;;;;;;;;;;913:6:5;:32;;-1:-1:-1;;;;;;913:32:5;;;-1:-1:-1;;;;;913:32:5;;;;;;;-1:-1:-1;955:26:5;;;;;;;;;;;;;991:8;:32;;;;;;;;;;;;;;1033:9;:34;;;;;;;;;;;;420:2:4;395:13;:28;;;433:14;:28;;;471:14;:28;;;509:13;:28;547:6;:27;584:9;:30;;609:4;584:30;;;;;;;;102:604;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;102:604:4;;;-1:-1:-1;102:604:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;5:162:-1:-;;103:59;154:6;148:13;103:59;;;94:68;88:79;-1:-1;;;88:79;665:816;;;;;903:3;891:9;882:7;878:23;874:33;871:2;;;920:1;917;910:12;871:2;955:1;972:84;1048:7;1028:9;972:84;;;962:94;;934:128;1093:2;1111:79;1182:7;1173:6;1162:9;1158:22;1111:79;;;1101:89;;1072:124;1227:2;1245:82;1319:7;1310:6;1299:9;1295:22;1245:82;;;1235:92;;1206:127;1364:2;1382:83;1457:7;1448:6;1437:9;1433:22;1382:83;;;1372:93;;1343:128;865:616;;;;;;;;1488:128;-1:-1;;;;;1557:54;;1540:76;1623:125;;1712:31;1737:5;1712:31;;;1701:42;1695:53;-1:-1;;1695:53;;102:604:4;;;;;;",
  "deployedSourceMap": "102:604:4:-;;;;;;;;;-1:-1:-1;;;102:604:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;144:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;144:33:4;;;;;;;;;;;;;;;;;;;;1780:43:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1780:43:5;;;;;;;;;;;;;;;;;1184:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1184:28:5;;;;;;;;;;;;627:77:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;627:77:4;;;;9425:1248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9425:1248:5;;;;;;;;;;;6730:1022;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6730:1022:5;;;;;;;;;454:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;454:27:5;;;;;;;;;;;;10951:837;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10951:837:5;;;;;;;;;4897:1389;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4897:1389:5;;;;;;;;;1731:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1731:43:5;;;;;;;;;;;;;;;;;;;;;;;;;327:268:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;327:268:3;;;;;;;;;1248:21:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1248:21:5;;;;2750:1756;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2750:1756:5;;;;;;;;;1080:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1080:28:5;;;;487;;8:9:-1;5:2;;;30:1;27;20:12;5:2;487:28:5;;;;393:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;393:25:5;;;;1218:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1218:24:5;;;;;;;;;;;;1275:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1275:38:5;;;;601:379:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;601:379:3;;;;;;;;;;;;;;;;;7873:350:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7873:350:5;;;;;;;;;1114:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1114:29:5;;;;424:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;424:24:5;;;;1149:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1149:29:5;;;;144:33:4;;;;;;;;;;;;;;;-1:-1:-1;;144:33:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1780:43:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1780:43:5;;;-1:-1:-1;1780:43:5;;;;;;;;;;;;-1:-1:-1;1780:43:5;:::o;1184:28::-;;;;:::o;627:77:4:-;693:4;686:11;;;;;;;;-1:-1:-1;;686:11:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:6;;686:11;;693:4;;686:11;;693:4;686:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;627:77;;:::o;9425:1248:5:-;9645:24;9768:21;9825:15;10347:23;;:::i;:::-;9616:13;;;;:8;:13;;;;;;;1830:331;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1830:331:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1897:15;;;;1883:10;:29;;;;1882:70;;;1932:8;:19;;;-1:-1:-1;;;;;1918:33:5;:10;-1:-1:-1;;;;;1918:33:5;;1882:70;1874:97;;;;;;-1:-1:-1;;;;;1874:97:5;;;;;;;;;;;;;;;;;1990:17;;;;2010:12;-1:-1:-1;1981:59:5;;;;-1:-1:-1;;;;;1981:59:5;;;;;;;;;2077:10;2059:14;;:28;;;;;;;;;2058:67;;;-1:-1:-1;2111:13:5;2093:14;;:31;;;;;;;;;2058:67;2050:93;;;;;;-1:-1:-1;;;;;2050:93:5;;;;;;;;;9672:13;;;;:8;:13;;;;;9715:16;;;;9672:13;;-1:-1:-1;9715:23:5;;9736:1;9715:23;:20;:23;:::i;:::-;9703:35;;9695:63;;;;-1:-1:-1;;;;;9695:63:5;;;;;;;;;9792:23;9805:9;9792:12;:23::i;:::-;9768:47;;9843:5;:19;9890:3;9895:8;9905:12;9919:13;9873:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;-1:-1;;;;9873:60:5;;;;;;;-1:-1:-1;;9873:60:5;;;26:21:-1;;;6:49;;9873:60:5;;;;;;;;9863:71;;9873:60;;-1:-1:-1;9873:60:5;;-1:-1:-1;9873:60:5;;-1:-1:-1;9863:71:5;;;;;9873:60;9863:71;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;;9863:71:5;;;;;;;;;9843:104;;;-1:-1:-1;;;9843:104:5;;;;;-1:-1:-1;9863:71:5;-1:-1:-1;9936:10:5;;9843:104;;;-1:-1:-1;9843:104:5;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9843:104:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9843:104:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9843:104:5;;;;;;;;;9976:15;;9825:122;;-1:-1:-1;;;;;;9965:26:5;;;9976:15;;;;;9965:26;9957:61;;;;-1:-1:-1;;;;;9957:61:5;;;;;;;;;10036:38;10050:9;10061:12;10036:13;:38::i;:::-;10028:67;;;;;;-1:-1:-1;;;;;10028:67:5;;;;;;;;;10158:26;;;;10113:6;;:41;;;;;-1:-1:-1;;;;;10113:6:5;;;;:16;;:41;;10130:9;;10141:12;;10113:41;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10113:41:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10113:41:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10113:41:5;;;;;;;;;:71;;10105:98;;;;-1:-1:-1;;;;;10105:98:5;;;;;;;;;10256:8;;10218:17;;;;:35;;10240:12;10218:35;:21;:35;:::i;:::-;:46;10214:123;;;10317:8;;10300:26;;:12;;:26;:16;:26;:::i;:::-;10280:17;;;:46;10214:123;10373:104;;;;;;;;;;;;;;;;;;-1:-1:-1;10555:13:5;;;:8;:13;;;;;;:25;;;;10373:104;;-1:-1:-1;10373:104:5;;10555:13;;:25;;:13;;:25;;;:::i;:::-;-1:-1:-1;10555:25:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10555:25:5;;;;;;;;;;10590:30;;-1:-1:-1;;10590:30:5;10607:13;10590:30;;;10635:31;-1:-1:-1;;;;;;;;;;;10635:31:5;-1:-1:-1;10635:31:5;;-1:-1:-1;10662:3:5;;10635:31;;;;;;;;;;9425:1248;;;;;;;;;;:::o;6730:1022::-;6976:24;6947:13;;;:8;:13;;;;;;1830:331;;;;;;;;;;6976:24;;1830:331;6947:13;1830:331;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1830:331:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1897:15;;;;1883:10;:29;;;;1882:70;;;1932:8;:19;;;-1:-1:-1;;;;;1918:33:5;:10;-1:-1:-1;;;;;1918:33:5;;1882:70;1874:97;;;;;;-1:-1:-1;;;;;1874:97:5;;;;;;;;;1990:17;;;;2010:12;-1:-1:-1;1981:59:5;;;;-1:-1:-1;;;;;1981:59:5;;;;;;;;;2077:10;2059:14;;:28;;;;;;;;;2058:67;;;-1:-1:-1;2111:13:5;2093:14;;:31;;;;;;;;;2058:67;2050:93;;;;;;-1:-1:-1;;;;;2050:93:5;;;;;;;;;7003:13;;;;:8;:13;;;;;;;;;7074:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;7074:84:5;;;;;;;;7064:95;;7003:13;;-1:-1:-1;7044:5:5;;:19;;7074:84;;;;;;7064:95;;;;;7074:84;7064:95;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;;7064:95:5;;;;;;;;;7044:123;;;-1:-1:-1;;;7044:123:5;;;;;-1:-1:-1;7064:95:5;-1:-1:-1;7161:5:5;;7044:123;;;-1:-1:-1;7044:123:5;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7044:123:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7044:123:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7044:123:5;;;;;;;;;7026:141;;7227:54;7254:8;:26;;;7227:8;:22;;;:26;;:54;;;;:::i;:::-;7185:38;:14;7204:18;7185:38;:18;:38;:::i;:::-;:96;7177:125;;;;-1:-1:-1;;;;;7177:125:5;;;;;;;;;-1:-1:-1;;;;;7320:21:5;;7331:10;7320:21;;7312:48;;;;-1:-1:-1;;;;;7312:48:5;;;;;;;;;7389:15;;-1:-1:-1;;;;;7378:26:5;;;7389:15;;;;;7378:26;;:60;;-1:-1:-1;7419:19:5;;;;-1:-1:-1;;;;;7408:30:5;;;7419:19;;7408:30;7378:60;7370:93;;;;;;-1:-1:-1;;;;;7370:93:5;;;;;;;;;7473:22;;;:43;;;7526:26;;;:47;;;7583:16;;;:37;;;7630:17;;;:38;;;7683:35;;-1:-1:-1;;;;;;;;;;;7683:35:5;;;7714:3;;7683:35;;;;;;;;;;7728:17;7741:3;7728:12;:17::i;:::-;6730:1022;;;;;;;;;:::o;454:27::-;;;-1:-1:-1;;;;;454:27:5;;:::o;10951:837::-;11102:24;11129:13;;;:8;:13;;;;;;;;11179:8;:13;;;;;11226:38;;;;;;;11239:24;;;11226:38;;;;;;;;;;;;;;;;;;;;;;;;11129:13;;11179;;11102:24;;;;11226:38;;;;;;;;11102:24;;11226:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11226:38:5;;;-1:-1:-1;11226:38:5;;;;;;;;;;;:12;:38::i;:::-;11202:62;;11317:3;11322:23;11343:1;11322:8;:16;;;:20;;:23;;;;:::i;:::-;11347:8;:20;;11369:13;11300:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11300:83:5;;;-1:-1:-1;11300:83:5;;;26:21:-1;;;6:49;;11300:83:5;;;;;;;;11290:94;;11300:83;;-1:-1:-1;11300:83:5;;-1:-1:-1;11300:83:5;;-1:-1:-1;11290:94:5;;;;;11300:83;11290:94;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;;11290:94:5;;;;;;;;;;;-1:-1:-1;11420:13:5;;-1:-1:-1;11402:31:5;;-1:-1:-1;;11402:31:5;;:14;;;;:31;;;;;;;;;11394:58;;;;-1:-1:-1;;;;;11394:58:5;;;;;;;;;11484:19;;;;-1:-1:-1;;;;;11484:19:5;11470:10;:33;11462:60;;;;-1:-1:-1;;;;;11462:60:5;;;;;;;;;11626:16;;;;11592:13;;;;11602:2;;11592:13;;;;;;;;;;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;;11592:13:5;;;;;;;;;;;11607;;11592;;-1:-1:-1;11607:13:5;;-1:-1:-1;11592:13:5;;;;-1:-1:-1;11607:13:5;;;;11592;11607;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;;11607:13:5;;;;;;;;;;;;11575:46;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;11575:46:5;;;;;;;;11565:57;;11575:46;;;;-1:-1:-1;11575:46:5;;-1:-1:-1;11565:57:5;;;;;-1:-1:-1;11565:57:5;11575:46;11565:57;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11565:57:5;;;;;;;;;;;;;;;;:77;;;;11557:104;;;;;;-1:-1:-1;;;;;11557:104:5;;;;;;;;;11679:9;;:46;;;;;-1:-1:-1;;;;;11679:9:5;;;;:16;;:46;;11696:5;;11703:2;;11707;;11711:13;;11679:46;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11679:46:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11679:46:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11679:46:5;;;;;;;;;11671:73;;;;;;-1:-1:-1;;;;;11671:73:5;;;;;;;;;11754:27;11762:3;11767:13;11754:7;:27::i;:::-;10951:837;;;;;;;;:::o;4897:1389::-;5147:24;5118:13;;;:8;:13;;;;;;1830:331;;;;;;;;;;5147:24;;1830:331;5118:13;1830:331;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1830:331:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1897:15;;;;1883:10;:29;;;;1882:70;;;1932:8;:19;;;-1:-1:-1;;;;;1918:33:5;:10;-1:-1:-1;;;;;1918:33:5;;1882:70;1874:97;;;;;;-1:-1:-1;;;;;1874:97:5;;;;;;;;;1990:17;;;;2010:12;-1:-1:-1;1981:59:5;;;;-1:-1:-1;;;;;1981:59:5;;;;;;;;;2077:10;2059:14;;:28;;;;;;;;;2058:67;;;-1:-1:-1;2111:13:5;2093:14;;:31;;;;;;;;;2058:67;2050:93;;;;;;-1:-1:-1;;;;;2050:93:5;;;;;;;;;5174:13;;;;:8;:13;;;;;;;;;5249:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;5249:78:5;;;;;;;;5239:89;;5174:13;;-1:-1:-1;5219:5:5;;:19;;5249:78;;;;;;5239:89;;;;;5249:78;5239:89;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;;5239:89:5;;;;;;;;;5219:122;;;-1:-1:-1;;;5219:122:5;;;;;-1:-1:-1;5239:89:5;-1:-1:-1;5330:10:5;;5219:122;;;-1:-1:-1;5219:122:5;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5219:122:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5219:122:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5219:122:5;;;;;;;;;5197:144;;5378:8;5359;:16;;;:27;5351:55;;;;;;-1:-1:-1;;;;;5351:55:5;;;;;;;;;-1:-1:-1;;;;;5424:25:5;;5439:10;5424:25;;5416:58;;;;-1:-1:-1;;;;;5416:58:5;;;;;;;;;5507:15;;-1:-1:-1;;;;;5492:30:5;;;5507:15;;;;;5492:30;;:68;;-1:-1:-1;5541:19:5;;;;-1:-1:-1;;;;;5526:34:5;;;5541:19;;5526:34;5492:68;5484:107;;;;;;-1:-1:-1;;;;;5484:107:5;;;;;;;;;5678:26;;;;5651:22;;;;:54;;;:26;:54;:::i;:::-;5609:38;:14;5628:18;5609:38;:18;:38;:::i;:::-;:96;5601:129;;;;-1:-1:-1;;;;;5601:129:5;;;;;;;;;5783:8;;5745:17;;;;:35;;5767:12;5745:35;:21;:35;:::i;:::-;:46;5741:123;;;5844:8;;5827:26;;:12;;:26;:16;:26;:::i;:::-;5807:17;;;:46;5741:123;5874:16;;;:37;;;5921:22;;;:43;;;-1:-1:-1;5974:26:5;;;:47;;;6031:17;;;:38;;;6084:14;;;;:31;;;;;;;;;6080:123;;;6131:27;;-1:-1:-1;;6131:27:5;6148:10;6131:27;;;-1:-1:-1;6179:13:5;;;:8;:13;;;;;;6172:20;6179:13;-1:-1:-1;6172:20:5;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;6080:123;-1:-1:-1;;;;;;;;;;;6247:3:5;6218:33;;;;;;;;;;;;;;;6261:18;6275:3;6261:13;:18::i;1731:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1731:43:5;;;;;;;;;:::o;327:268:3:-;389:7;491:9;:22;;;527:9;:22;;;563:9;:14;;;425:162;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;425:162:3;;;;;;;;;;;;;;;;-1:-1:-1;;425:162:3;;;26:21:-1;;;6:49;;425:162:3;;;;;;;;415:173;;425:162;;-1:-1:-1;425:162:3;;-1:-1:-1;425:162:3;;415:173;;;-1:-1:-1;415:173:3;-1:-1:-1;415:173:3;425:162;415:173;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;;415:173:3;;;;;;;;;;;;-1:-1:-1;;;;;327:268:3:o;1248:21:5:-;;;;:::o;2750:1756::-;3048:15;3914:23;;:::i;:::-;3066:5;:19;3113:3;3118:7;3127:11;3140:14;3156:18;3176:13;3191:2;3195;3096:102;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3096:102:5;-1:-1:-1;;;;;3096:102:5;;;;;;;;-1:-1:-1;;;;;3096:102:5;-1:-1:-1;;;;;3096:102:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;3096:102:5;;;;;;;;;;-1:-1:-1;3096:102:5;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3096:102:5;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3096:102:5;;;3086:113;;;;;;;;;;;;;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;;3086:113:5;;;;;;;;;3066:146;;;-1:-1:-1;;;3066:146:5;;;;;-1:-1:-1;3086:113:5;-1:-1:-1;3201:10:5;;3066:146;;;-1:-1:-1;3066:146:5;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3066:146:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3066:146:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3066:146:5;;;;;;;;;3048:164;-1:-1:-1;3253:12:5;3230:13;;;;:8;:13;;;;;:19;;;:35;;;;;;;;;3222:55;;;;-1:-1:-1;;;;;3222:55:5;;;;;;;;;3320:12;3295:21;:13;3313:2;3295:21;:17;:21;:::i;:::-;:37;;3287:67;;;;-1:-1:-1;;;;;3287:67:5;;;;;;;;;3372:8;;:30;;;;;3406:14;;-1:-1:-1;;;;;3372:8:5;;:21;;:30;;3394:7;;3372:30;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3372:30:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3372:30:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3372:30:5;;;;;;;;;:48;;3364:75;;;;-1:-1:-1;;;;;3364:75:5;;;;;;;;;3457:8;;:24;;;;;-1:-1:-1;;;;;3457:8:5;;;;:18;;:24;;3476:4;;3457:24;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3457:24:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3457:24:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3457:24:5;;;;;;;;;3449:51;;;;;;-1:-1:-1;;;;;3449:51:5;;;;;;;;;3530:7;-1:-1:-1;;;;;3519:18:5;:7;-1:-1:-1;;;;;3519:18:5;;:44;;;;3552:11;-1:-1:-1;;;;;3541:22:5;:7;-1:-1:-1;;;;;3541:22:5;;3519:44;3518:73;;;;-1:-1:-1;3569:10:5;-1:-1:-1;;;;;3569:21:5;;;;3518:73;3510:100;;;;;;-1:-1:-1;;;;;3510:100:5;;;;;;;;;3628:10;-1:-1:-1;;;;;3628:21:5;;;;:50;;-1:-1:-1;3653:10:5;-1:-1:-1;;;;;3653:25:5;;;3628:50;3620:77;;;;;;-1:-1:-1;;;;;3620:77:5;;;;;;;;;3716:5;;:49;;;;;-1:-1:-1;;;;;3716:5:5;;;;:18;;:49;;3735:7;;3744:4;;3750:14;;3716:49;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3716:49:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3716:49:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3716:49:5;;;;;;;;;3708:87;;;;;;-1:-1:-1;;;;;3708:87:5;;;;;;;;;3813:5;;:57;;;;;-1:-1:-1;;;;;3813:5:5;;;;:18;;:57;;3832:11;;3845:4;;3851:18;;3813:57;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3813:57:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3813:57:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3813:57:5;;;;;;;;;3805:98;;;;;;-1:-1:-1;;;;;3805:98:5;;;;;;;;;3940:477;;;;;;;;;;3982:10;3940:477;;;;4026:7;-1:-1:-1;;;;;3940:477:5;;;;;4067:11;-1:-1:-1;;;;;3940:477:5;;;;;4112:14;3940:477;;;;4160:18;3940:477;;;;4217:1;3940:477;;;;4258:1;3940:477;;;;4294:21;4311:3;4294:12;:16;;:21;;;;:::i;:::-;3940:477;;;;4386:2;4376:13;;;;;;;;;;;;;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;;4376:13:5;;;;;;;;;;;4391;;4376;;-1:-1:-1;4391:13:5;;-1:-1:-1;4376:13:5;;;;-1:-1:-1;4391:13:5;;;;4376;4391;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;;4391:13:5;;;;;;;;;;;;4359:46;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;4359:46:5;;;;;;;;4349:57;;4359:46;;;;-1:-1:-1;4359:46:5;;-1:-1:-1;4349:57:5;;;;;-1:-1:-1;4349:57:5;4359:46;4349:57;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4349:57:5;;;;;;;;;;;;;;;;3940:477;;;;;;3914:503;;4444:8;4428;:13;4437:3;4428:13;;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4428:24:5;;;;;;-1:-1:-1;;4428:24:5;;-1:-1:-1;;;;;4428:24:5;;;;;;;;;;;;;;;;-1:-1:-1;4428:24:5;;;;-1:-1:-1;;4428:24:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4468:31;-1:-1:-1;;;;;;;;;;;4468:31:5;;;4495:3;;4468:31;;;;;;;;;;2750:1756;;;;;;;;;;;:::o;1080:28::-;;;;:::o;487:::-;;;-1:-1:-1;;;;;487:28:5;;:::o;393:25::-;;;-1:-1:-1;;;;;393:25:5;;:::o;1218:24::-;;;-1:-1:-1;;;;;1218:24:5;;:::o;1275:38::-;;;;:::o;601:379:3:-;679:4;750:1;712:9;:22;;;:29;:40;;:88;;;-1:-1:-1;768:22:3;;798:1;-1:-1:-1;712:88:3;:149;;;-1:-1:-1;825:22:3;;855:5;-1:-1:-1;712:149:3;:189;;;;892:9;881:5;887:1;881:8;;;;;;;;;;;;;;;;;;:20;712:189;695:258;;;-1:-1:-1;937:5:3;930:12;;695:258;-1:-1:-1;969:4:3;601:379;;;;;:::o;7873:350:5:-;7924:24;7951:13;;;:8;:13;;;;;7982:17;;;;8002:12;-1:-1:-1;7974:58:5;;;;-1:-1:-1;;;;;7974:58:5;;;;;;;;;8064:13;8046:14;;;;:31;;;;;;;;;8042:101;;;8093:19;8108:3;8093:14;:19::i;:::-;8126:7;;8042:101;-1:-1:-1;;;;;;;;;;;8185:3:5;8157:32;;;;;;;;;;;;;;;8199:17;8212:3;8199:12;:17::i;:::-;7873:350;;:::o;1114:29::-;;;;:::o;424:24::-;;;-1:-1:-1;;;;;424:24:5;;:::o;1149:29::-;;;;:::o;1035:129:11:-;1093:7;1120:5;;;1138:6;;;;1131:14;;;;1158:1;1151:8;;1035:129;;;;;;:::o;865:110::-;923:7;945:6;;;;938:14;;;;-1:-1:-1;965:5:11;;;865:110::o;12633:1023:5:-;12687:24;12714:13;;;:8;:13;;;;;12767:17;;;;12714:13;;12687:24;;;;;;;12767:35;;12797:4;;12767:25;;12789:2;12767:25;:21;:25;:::i;:::-;:29;:35;:29;:35;:::i;:::-;12737:65;;12842:39;12877:3;12842:30;12857:14;;12842:10;:14;;:30;;;;:::i;:39::-;12812:69;;12921:8;:22;;;12891:52;;12988:1;12953:37;;13017:8;:26;;;13004:10;:39;13001:225;;;13072:26;:10;13087;13072:26;:14;:26;:::i;:::-;13059:39;;13001:225;;;13148:65;13202:10;13148:49;13179:17;13148:8;:26;;;:30;;:49;;;;:::i;:::-;:53;:65;:53;:65;:::i;:::-;13129:86;;13001:225;13250:15;;13236:42;;13250:15;;;-1:-1:-1;;;;;13250:15:5;13267:10;13236:13;:42::i;:::-;13288:5;;;13303:19;;;;13288:51;;;;;-1:-1:-1;;;;;13288:5:5;;;;:14;;:51;;13303:19;;;13324:14;;13288:51;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13288:51:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13349:5:5;;13364:15;;13349:43;;;;;-1:-1:-1;;;;;13349:5:5;;;;-1:-1:-1;13349:14:5;;-1:-1:-1;13349:43:5;;:5;13364:15;;;;;;;13381:10;;13349:43;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13349:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13402:28:5;;-1:-1:-1;;13402:28:5;13419:11;13402:28;;;;;;-1:-1:-1;13447:22:5;;;13440:29;;;13486:26;;;;13479:33;;;;13486:26;;-1:-1:-1;13526:14:5;;;-1:-1:-1;13526:31:5;;;;;;;;;13522:81;;;13579:13;;;;:8;:13;;;;;;13572:20;13579:13;;13572:20;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;13522:81;-1:-1:-1;;;;;;;;;;;13645:3:5;13617:32;;;;;;;;;;;;;;;12633:1023;;;;;;:::o;11950:569::-;12017:24;12067;12118:23;;:::i;:::-;12044:13;;;;:8;:13;;;;;;;;12094:8;:13;;;;;;12144:6;;:78;;;;;12044:13;;-1:-1:-1;12094:13:5;;-1:-1:-1;;;;;;12144:6:5;;;;:18;;:78;;:6;12163:24;;;12094:13;;12211:10;;12144:78;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12144:78:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12144:78:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12144:78:5;;;;;;;;;12335:9;;12309:22;;;;;12302:42;;;12265:80;;;;12335:9;12425;;;12392:42;12355:26;;;:80;12451:34;;12118:104;;-1:-1:-1;;;;;;;;;;;;12451:34:5;;;12481:3;;12451:34;;;;;;;;;;12495:17;12508:3;12495:12;:17::i;:::-;11950:569;;;;;:::o;8926:232::-;9015:6;;8985:13;;;;:8;:13;;;;;:27;;;:36;;:76;;-1:-1:-1;9025:13:5;;;;:8;:13;;;;;:31;;;:36;8985:76;8981:171;;;-1:-1:-1;;;;;;;;;;;9106:3:5;9082:28;;;;;;;;;;;;;;;9124:17;9137:3;9124:12;:17::i;:::-;8926:232;:::o;8345:456::-;8401:24;8428:13;;;:8;:13;;;;;;;;8478:8;:13;;;;;;8547:6;;:66;;;;;8428:13;;8478;;8401:24;;-1:-1:-1;;;;;8547:6:5;;:18;;:66;;:6;8566:24;;;8478:13;;8547:66;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8547:66:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8547:66:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8547:66:5;;;;;;;;;8652:26;;;;8528:85;;-1:-1:-1;8652:40:5;;8528:85;8652:40;:30;:40;:::i;:::-;8623:26;;;:69;8731:22;;;;:36;;8758:8;8731:36;:26;:36;:::i;:::-;8702:22;;;:65;8777:17;8790:3;8777:12;:17::i;:::-;8345:456;;;;:::o;236:173:11:-;294:7;;313:6;;309:35;;;336:1;329:8;;;;309:35;-1:-1:-1;361:5:11;;;365:1;361;:5;379;;;;;;;;:10;372:18;;;489:265;547:7;636:9;652:1;648;:5;;;;;;;;;489:265;-1:-1:-1;;;;489:265:11:o;13835:403:5:-;13989:8;;:28;;;;;13910:17;;;;-1:-1:-1;;;;;13989:8:5;;;;:19;;:28;;14009:7;;13989:28;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13989:28:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13989:28:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13989:28:5;;;;;;;;;14027:5;;14042:9;;14064:13;;13964:53;;-1:-1:-1;13964:53:5;;-1:-1:-1;;;;;;14027:5:5;;;;:14;;14042:9;;;;14053:34;;14083:3;;14053:25;;:6;;:25;:10;:25;:::i;:34::-;14027:61;;;;;-1:-1:-1;;;14027:61:5;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14027:61:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14098:5:5;;14135:14;;-1:-1:-1;;;;;14098:5:5;;;;-1:-1:-1;14098:14:5;;-1:-1:-1;14113:9:5;;14124:35;;14155:3;;14124:26;;:6;;:26;:10;:26;:::i;:35::-;14098:62;;;;;-1:-1:-1;;;14098:62:5;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14098:62:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14170:5:5;;14207:13;;-1:-1:-1;;;;;14170:5:5;;;;-1:-1:-1;14170:14:5;;-1:-1:-1;14185:9:5;;14196:34;;14226:3;;14196:25;;:6;;:25;:10;:25;:::i;:34::-;14170:61;;;;;-1:-1:-1;;;14170:61:5;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14170:61:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;102:604:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;102:604:4;;;-1:-1:-1;102:604:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;102:604:4;;;-1:-1:-1;102:604:4;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;102:604:4;;;;;-1:-1:-1;;;;;102:604:4;;;;;;-1:-1:-1;;;;;102:604:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;105:10:-1;102:604:4;88:34:-1;-1:-1;102:604:4;;;-1:-1:-1;;102:604:4:o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;57:66;-1:-1;;;57:66;130:122;;208:39;239:6;233:13;208:39;;280:756;;405:4;393:17;;389:27;-1:-1;379:2;;430:1;427;420:12;379:2;467:6;454:20;489:95;504:79;576:6;504:79;;;489:95;;;480:104;;601:5;626:6;619:5;612:21;656:4;648:6;644:17;634:27;;678:4;673:3;669:14;662:21;;731:6;778:3;770:4;762:6;758:17;753:3;749:27;746:36;743:2;;;795:1;792;785:12;743:2;820:1;805:225;830:6;827:1;824:13;805:225;;;888:3;910:56;962:3;950:10;910:56;;;898:69;;-1:-1;990:4;981:14;;;;1018:4;1009:14;;;;;852:1;845:9;805:225;;;809:14;372:664;;;;;;;;1062:634;;1180:4;1168:17;;1164:27;-1:-1;1154:2;;1205:1;1202;1195:12;1154:2;1229:3;1247:77;1262:61;1316:6;1262:61;;1247:77;1238:86;;1341:5;1400:6;1447:3;1439:4;1431:6;1427:17;1422:3;1418:27;1415:36;1412:2;;;1464:1;1461;1454:12;1412:2;1489:1;1474:216;1499:6;1496:1;1493:13;1474:216;;;1557:3;1579:47;1622:3;1610:10;1579:47;;;1567:60;;-1:-1;1650:4;1641:14;;;;1669;;;;;1521:1;1514:9;1474:216;;1723:607;;1827:4;1815:17;;1811:27;-1:-1;1801:2;;1852:1;1849;1842:12;1801:2;1876:3;1894:74;1909:58;1960:6;1909:58;;1894:74;1885:83;;1985:5;2044:6;2091:3;2083:4;2075:6;2071:17;2066:3;2062:27;2059:36;2056:2;;;2108:1;2105;2098:12;2056:2;2133:1;2118:206;2143:6;2140:1;2137:13;2118:206;;;2201:3;2223:37;2256:3;2244:10;2223:37;;;2211:50;;-1:-1;2284:4;2275:14;;;;2303;;;;;2165:1;2158:9;2118:206;;2356:707;;2466:4;2454:17;;2450:27;-1:-1;2440:2;;2491:1;2488;2481:12;2440:2;2528:6;2515:20;2550:80;2565:64;2622:6;2565:64;;2550:80;2541:89;;2647:5;2672:6;2665:5;2658:21;2702:4;2694:6;2690:17;2680:27;;2724:4;2719:3;2715:14;2708:21;;2777:6;2824:3;2816:4;2808:6;2804:17;2799:3;2795:27;2792:36;2789:2;;;2841:1;2838;2831:12;2789:2;2866:1;2851:206;2876:6;2873:1;2870:13;2851:206;;;2934:3;2956:37;2989:3;2977:10;2956:37;;;2944:50;;-1:-1;3017:4;3008:14;;;;3036;;;;;2898:1;2891:9;2851:206;;3071:116;;3146:36;3174:6;3168:13;3146:36;;3194:118;;3261:46;3299:6;3286:20;3261:46;;3320:440;;3414:4;3402:17;;3398:27;-1:-1;3388:2;;3439:1;3436;3429:12;3388:2;3476:6;3463:20;3498:64;3513:48;3554:6;3513:48;;3498:64;3489:73;;3582:6;3575:5;3568:21;3618:4;3610:6;3606:17;3651:4;3644:5;3640:16;3686:3;3677:6;3672:3;3668:16;3665:25;3662:2;;;3703:1;3700;3693:12;3662:2;3713:41;3747:6;3742:3;3737;3713:41;;;3381:379;;;;;;;;3768:120;;3845:38;3875:6;3869:13;3845:38;;3928:752;;4042:4;4030:9;4025:3;4021:19;4017:30;4014:2;;;4060:1;4057;4050:12;4014:2;4078:20;4093:4;4078:20;;;4069:29;-1:-1;4156:1;4187:49;4232:3;4212:9;4187:49;;;4163:74;;-1:-1;4334:2;4319:18;;4306:32;4358:18;4347:30;;4344:2;;;4390:1;4387;4380:12;4344:2;4425:89;4510:3;4501:6;4490:9;4486:22;4425:89;;;4418:4;4411:5;4407:16;4400:115;4258:268;4576:2;4609:49;4654:3;4645:6;4634:9;4630:22;4609:49;;;4602:4;4595:5;4591:16;4584:75;4536:134;4008:672;;;;;4941:263;;5056:2;5044:9;5035:7;5031:23;5027:32;5024:2;;;5072:1;5069;5062:12;5024:2;5107:1;5124:64;5180:7;5160:9;5124:64;;;5114:74;5018:186;-1:-1;;;;5018:186;5211:399;;;5343:2;5331:9;5322:7;5318:23;5314:32;5311:2;;;5359:1;5356;5349:12;5311:2;5394:1;5411:64;5467:7;5447:9;5411:64;;;5401:74;;5373:108;5512:2;5530:64;5586:7;5577:6;5566:9;5562:22;5530:64;;;5520:74;;5491:109;5305:305;;;;;;5617:307;;5754:2;5742:9;5733:7;5729:23;5725:32;5722:2;;;5770:1;5767;5760:12;5722:2;5805:1;5822:86;5900:7;5880:9;5822:86;;5931:257;;6043:2;6031:9;6022:7;6018:23;6014:32;6011:2;;;6059:1;6056;6049:12;6011:2;6094:1;6111:61;6164:7;6144:9;6111:61;;6195:241;;6299:2;6287:9;6278:7;6274:23;6270:32;6267:2;;;6315:1;6312;6305:12;6267:2;6350:1;6367:53;6412:7;6392:9;6367:53;;6443:1559;;;;;;;;;;6710:3;6698:9;6689:7;6685:23;6681:33;6678:2;;;6727:1;6724;6717:12;6678:2;6762:1;6779:53;6824:7;6804:9;6779:53;;;6769:63;;6741:97;6869:2;6887:53;6932:7;6923:6;6912:9;6908:22;6887:53;;;6877:63;;6848:98;6977:2;6995:53;7040:7;7031:6;7020:9;7016:22;6995:53;;;6985:63;;6956:98;7085:2;7103:53;7148:7;7139:6;7128:9;7124:22;7103:53;;;7093:63;;7064:98;7193:3;7212:53;7257:7;7248:6;7237:9;7233:22;7212:53;;;7202:63;;7172:99;7302:3;7321:53;7366:7;7357:6;7346:9;7342:22;7321:53;;;7311:63;;7281:99;7439:3;7428:9;7424:19;7411:33;7464:18;7456:6;7453:30;7450:2;;;7496:1;7493;7486:12;7450:2;7516:62;7570:7;7561:6;7550:9;7546:22;7516:62;;;7506:72;;7390:194;7643:3;7632:9;7628:19;7615:33;7668:18;7660:6;7657:30;7654:2;;;7700:1;7697;7690:12;7654:2;7720:62;7774:7;7765:6;7754:9;7750:22;7720:62;;;7710:72;;7594:194;7847:3;7836:9;7832:19;7819:33;7872:18;7864:6;7861:30;7858:2;;;7904:1;7901;7894:12;7858:2;7924:62;7978:7;7969:6;7958:9;7954:22;7924:62;;;7914:72;;7798:194;6672:1330;;;;;;;;;;;;8009:929;;;;;8191:3;8179:9;8170:7;8166:23;8162:33;8159:2;;;8208:1;8205;8198:12;8159:2;8243:1;8260:53;8305:7;8285:9;8260:53;;;8250:63;;8222:97;8378:2;8367:9;8363:18;8350:32;8402:18;8394:6;8391:30;8388:2;;;8434:1;8431;8424:12;8388:2;8454:62;8508:7;8499:6;8488:9;8484:22;8454:62;;;8444:72;;8329:193;8581:2;8570:9;8566:18;8553:32;8605:18;8597:6;8594:30;8591:2;;;8637:1;8634;8627:12;8591:2;8657:62;8711:7;8702:6;8691:9;8687:22;8657:62;;;8647:72;;8532:193;8784:2;8773:9;8769:18;8756:32;8808:18;8800:6;8797:30;8794:2;;;8840:1;8837;8830:12;8794:2;8860:62;8914:7;8905:6;8894:9;8890:22;8860:62;;;8850:72;;8735:193;8153:785;;;;;;;;8945:1119;;;;;;9176:3;9164:9;9155:7;9151:23;9147:33;9144:2;;;9193:1;9190;9183:12;9144:2;9228:1;9245:53;9290:7;9270:9;9245:53;;;9235:63;;9207:97;9335:2;9353:53;9398:7;9389:6;9378:9;9374:22;9353:53;;;9343:63;;9314:98;9471:2;9460:9;9456:18;9443:32;9495:18;9487:6;9484:30;9481:2;;;9527:1;9524;9517:12;9481:2;9547:78;9617:7;9608:6;9597:9;9593:22;9547:78;;;9537:88;;9422:209;9690:2;9679:9;9675:18;9662:32;9714:18;9706:6;9703:30;9700:2;;;9746:1;9743;9736:12;9700:2;9766:78;9836:7;9827:6;9816:9;9812:22;9766:78;;;9756:88;;9641:209;9909:3;9898:9;9894:19;9881:33;9934:18;9926:6;9923:30;9920:2;;;9966:1;9963;9956:12;9920:2;9986:62;10040:7;10031:6;10020:9;10016:22;9986:62;;;9976:72;;9860:194;9138:926;;;;;;;;;10071:973;;;;;;;10269:3;10257:9;10248:7;10244:23;10240:33;10237:2;;;10286:1;10283;10276:12;10237:2;10321:1;10338:53;10383:7;10363:9;10338:53;;;10328:63;;10300:97;10428:2;10446:53;10491:7;10482:6;10471:9;10467:22;10446:53;;;10436:63;;10407:98;10536:2;10554:53;10599:7;10590:6;10579:9;10575:22;10554:53;;;10544:63;;10515:98;10644:2;10662:53;10707:7;10698:6;10687:9;10683:22;10662:53;;;10652:63;;10623:98;10752:3;10771:53;10816:7;10807:6;10796:9;10792:22;10771:53;;;10761:63;;10731:99;10889:3;10878:9;10874:19;10861:33;10914:18;10906:6;10903:30;10900:2;;;10946:1;10943;10936:12;10900:2;10966:62;11020:7;11011:6;11000:9;10996:22;10966:62;;;10956:72;;10840:194;10231:813;;;;;;;;;11051:377;;11180:2;11168:9;11159:7;11155:23;11151:32;11148:2;;;11196:1;11193;11186:12;11148:2;11231:31;;11282:18;11271:30;;11268:2;;;11314:1;11311;11304:12;11268:2;11334:78;11404:7;11395:6;11384:9;11380:22;11334:78;;11435:638;;;11606:2;11594:9;11585:7;11581:23;11577:32;11574:2;;;11622:1;11619;11612:12;11574:2;11657:31;;11708:18;11697:30;;11694:2;;;11740:1;11737;11730:12;11694:2;11760:78;11830:7;11821:6;11810:9;11806:22;11760:78;;;11750:88;;11636:208;11903:2;11892:9;11888:18;11875:32;11927:18;11919:6;11916:30;11913:2;;;11959:1;11956;11949:12;11913:2;11979:78;12049:7;12040:6;12029:9;12025:22;11979:78;;12080:263;;12195:2;12183:9;12174:7;12170:23;12166:32;12163:2;;;12211:1;12208;12201:12;12163:2;12246:1;12263:64;12319:7;12299:9;12263:64;;12350:110;12423:31;12448:5;12423:31;;;12418:3;12411:44;12405:55;;;12504:711;;12673:69;12736:5;12673:69;;;12760:6;12755:3;12748:19;12784:4;12779:3;12775:14;12768:21;;12829:71;12894:5;12829:71;;;12921:1;12906:287;12931:6;12928:1;12925:13;12906:287;;;12971:95;13062:3;13053:6;13047:13;12971:95;;;13083:75;13151:6;13083:75;;;13181:4;13172:14;;;;;13073:85;-1:-1;12953:1;12946:9;12906:287;;;-1:-1;13206:3;;12652:563;-1:-1;;;;12652:563;13260:713;;13431:71;13496:5;13431:71;;;13520:6;13515:3;13508:19;13544:4;13539:3;13535:14;13528:21;;13589:73;13656:5;13589:73;;;13683:1;13668:283;13693:6;13690:1;13687:13;13668:283;;;13733:89;13818:3;13810:6;13733:89;;;13839:77;13909:6;13839:77;;;13939:4;13930:14;;;;;13829:87;-1:-1;13715:1;13708:9;13668:283;;14014:505;14133:48;14175:5;14133:48;;;14227:50;14271:5;14227:50;;;14298:1;14283:224;14308:6;14305:1;14302:13;14283:224;;;14348:53;14397:3;14388:6;14382:13;14348:53;;;14418:54;14465:6;14418:54;;;14495:4;14486:14;;;;;14408:64;-1:-1;14330:1;14323:9;14283:224;;14560:509;14680:49;14723:5;14680:49;;;14775:51;14820:5;14775:51;;;14847:1;14832:225;14857:6;14854:1;14851:13;14832:225;;;14897:53;14946:3;14937:6;14931:13;14897:53;;;14967:55;15015:6;14967:55;;;15045:4;15036:14;;;;;14957:65;-1:-1;14879:1;14872:9;14832:225;;15108:590;;15243:54;15291:5;15243:54;;;15315:6;15310:3;15303:19;15339:4;15334:3;15330:14;15323:21;;15384:56;15434:5;15384:56;;;15461:1;15446:230;15471:6;15468:1;15465:13;15446:230;;;15511:53;15560:3;15551:6;15545:13;15511:53;;;15581:60;15634:6;15581:60;;;15664:4;15655:14;;;;;15571:70;-1:-1;15493:1;15486:9;15446:230;;15737:578;;15869:51;15914:5;15869:51;;;15938:6;15933:3;15926:19;15962:4;15957:3;15953:14;15946:21;;16007:53;16054:5;16007:53;;;16081:1;16066:227;16091:6;16088:1;16085:13;16066:227;;;16131:53;16180:3;16171:6;16165:13;16131:53;;;16201:57;16251:6;16201:57;;;16281:4;16272:14;;;;;16191:67;-1:-1;16113:1;16106:9;16066:227;;16323:101;16390:28;16412:5;16390:28;;16431:110;16504:31;16529:5;16504:31;;16673:297;;16773:38;16805:5;16773:38;;;16828:6;16823:3;16816:19;16840:63;16896:6;16889:4;16884:3;16880:14;16873:4;16866:5;16862:16;16840:63;;;16935:29;16957:6;16935:29;;;16915:50;;;16928:4;16915:50;;16753:217;-1:-1;;;16753:217;17289:156;17382:57;17433:5;17382:57;;18088:130;18168:44;18206:5;18168:44;;18832:296;18987:2;18975:15;;19024:66;19019:2;19010:12;;19003:88;19119:2;19110:12;;18968:160;19137:296;19292:2;19280:15;;19329:66;19324:2;19315:12;;19308:88;19424:2;19415:12;;19273:160;19442:296;19597:2;19585:15;;19634:66;19629:2;19620:12;;19613:88;19729:2;19720:12;;19578:160;19747:296;19902:2;19890:15;;19939:66;19934:2;19925:12;;19918:88;20034:2;20025:12;;19883:160;20052:296;20207:2;20195:15;;20244:66;20239:2;20230:12;;20223:88;20339:2;20330:12;;20188:160;20357:296;20512:2;20500:15;;20549:66;20544:2;20535:12;;20528:88;20644:2;20635:12;;20493:160;20662:296;20817:2;20805:15;;20854:66;20849:2;20840:12;;20833:88;20949:2;20940:12;;20798:160;20967:296;21122:2;21110:15;;21159:66;21154:2;21145:12;;21138:88;21254:2;21245:12;;21103:160;21272:296;21427:2;21415:15;;21464:66;21459:2;21450:12;;21443:88;21559:2;21550:12;;21408:160;21577:296;21732:2;21720:15;;21769:66;21764:2;21755:12;;21748:88;21864:2;21855:12;;21713:160;21882:296;22037:2;22025:15;;22074:66;22069:2;22060:12;;22053:88;22169:2;22160:12;;22018:160;22187:296;22342:2;22330:15;;22379:66;22374:2;22365:12;;22358:88;22474:2;22465:12;;22323:160;22492:296;22647:2;22635:15;;22684:66;22679:2;22670:12;;22663:88;22779:2;22770:12;;22628:160;22797:296;22952:2;22940:15;;22989:66;22984:2;22975:12;;22968:88;23084:2;23075:12;;22933:160;23102:296;23257:2;23245:15;;23294:66;23289:2;23280:12;;23273:88;23389:2;23380:12;;23238:160;23407:296;23562:2;23550:15;;23599:66;23594:2;23585:12;;23578:88;23694:2;23685:12;;23543:160;23712:296;23867:2;23855:15;;23904:66;23899:2;23890:12;;23883:88;23999:2;23990:12;;23848:160;24017:296;24172:2;24160:15;;24209:66;24204:2;24195:12;;24188:88;24304:2;24295:12;;24153:160;24322:295;24477:1;24465:14;;24513:66;24508:2;24499:12;;24492:88;24608:2;24599:12;;24458:159;24626:296;24781:2;24769:15;;24818:66;24813:2;24804:12;;24797:88;24913:2;24904:12;;24762:160;24931:296;25086:2;25074:15;;25123:66;25118:2;25109:12;;25102:88;25218:2;25209:12;;25067:160;25236:295;25391:1;25379:14;;25427:66;25422:2;25413:12;;25406:88;25522:2;25513:12;;25372:159;25540:296;25695:2;25683:15;;25732:66;25727:2;25718:12;;25711:88;25827:2;25818:12;;25676:160;25845:296;26000:2;25988:15;;26037:66;26032:2;26023:12;;26016:88;26132:2;26123:12;;25981:160;26150:296;26305:2;26293:15;;26342:66;26337:2;26328:12;;26321:88;26437:2;26428:12;;26286:160;26455:296;26610:2;26598:15;;26647:66;26642:2;26633:12;;26626:88;26742:2;26733:12;;26591:160;26760:296;26915:2;26903:15;;26952:66;26947:2;26938:12;;26931:88;27047:2;27038:12;;26896:160;27065:296;27220:2;27208:15;;27257:66;27252:2;27243:12;;27236:88;27352:2;27343:12;;27201:160;27370:296;27525:2;27513:15;;27562:66;27557:2;27548:12;;27541:88;27657:2;27648:12;;27506:160;27675:296;27830:2;27818:15;;27867:66;27862:2;27853:12;;27846:88;27962:2;27953:12;;27811:160;27980:296;28135:2;28123:15;;28172:66;28167:2;28158:12;;28151:88;28267:2;28258:12;;28116:160;28347:822;28565:22;;28347:822;;28488:4;28479:14;;;28599:61;28483:3;28565:22;28599:61;;;28508:164;28756:4;28749:5;28745:16;28739:23;28807:3;28801:4;28797:14;28790:4;28785:3;28781:14;28774:38;28827:136;28958:4;28945:11;28827:136;;;28819:144;;28682:293;29051:4;29044:5;29040:16;29034:23;29069:62;29125:4;29120:3;29116:14;29103:11;29069:62;;;-1:-1;29160:4;28461:708;-1:-1;;;28461:708;30127:922;30349:22;;30127:922;;30265:4;30256:14;;;30395:33;30349:22;30395:33;;;30440:61;30491:3;30474:11;30440:61;;;30303:210;30591:3;30584:5;30580:15;30640:3;30634:4;30630:14;30623:4;30618:3;30614:14;30607:38;30660:138;30793:4;30780:11;30660:138;;;30652:146;;30523:287;30875:3;30868:5;30864:15;30858:22;30845:35;;30904:33;30927:9;30904:33;;;30949:62;31005:4;31000:3;30996:14;30983:11;30949:62;;;-1:-1;31040:4;;30238:811;-1:-1;;;;30238:811;31173:193;31281:2;31266:18;;31295:61;31270:9;31329:6;31295:61;;31373:435;31557:2;31542:18;;31571:61;31546:9;31605:6;31571:61;;;31643:82;31721:2;31710:9;31706:18;31697:6;31643:82;;;31736:62;31794:2;31783:9;31779:18;31770:6;31736:62;;31815:294;31951:2;31936:18;;31965:61;31940:9;31999:6;31965:61;;;32037:62;32095:2;32084:9;32080:18;32071:6;32037:62;;32116:181;32218:2;32203:18;;32232:55;32207:9;32260:6;32232:55;;32304:193;32412:2;32397:18;;32426:61;32401:9;32460:6;32426:61;;32504:402;32666:2;32651:18;;32680:69;32655:9;32722:6;32680:69;;;32797:9;32791:4;32787:20;32782:2;32771:9;32767:18;32760:48;32822:74;32891:4;32882:6;32822:74;;32913:749;33159:3;33144:19;;33174:61;33148:9;33208:6;33174:61;;;33283:9;33277:4;33273:20;33268:2;33257:9;33253:18;33246:48;33308:66;33369:4;33360:6;33308:66;;;33300:74;;33422:9;33416:4;33412:20;33407:2;33396:9;33392:18;33385:48;33447:66;33508:4;33499:6;33447:66;;;33439:74;;33561:9;33555:4;33551:20;33546:2;33535:9;33531:18;33524:48;33586:66;33647:4;33638:6;33586:66;;;33578:74;33130:532;-1:-1;;;;;;33130:532;33669:233;33797:2;33782:18;;33811:81;33786:9;33865:6;33811:81;;34853:1021;35192:3;35177:19;;35207:68;35181:9;35248:6;35207:68;;;35286:62;35344:2;35333:9;35329:18;35320:6;35286:62;;;35359;35417:2;35406:9;35402:18;35393:6;35359:62;;;35432;35490:2;35479:9;35475:18;35466:6;35432:62;;;35505:63;35563:3;35552:9;35548:19;35539:6;35505:63;;;35579;35637:3;35626:9;35622:19;35613:6;35579:63;;;35653;35711:3;35700:9;35696:19;35687:6;35653:63;;;35727;35785:3;35774:9;35770:19;35761:6;35727:63;;;35801;35859:3;35848:9;35844:19;35835:6;35801:63;;;35163:711;;;;;;;;;;;;;35881:273;36005:2;36019:47;;;35990:18;;36080:64;35990:18;36130:6;36080:64;;36449:387;36630:2;36644:47;;;36615:18;;36705:121;36615:18;36705:121;;36843:387;37024:2;37038:47;;;37009:18;;37099:121;37009:18;37099:121;;37237:387;37418:2;37432:47;;;37403:18;;37493:121;37403:18;37493:121;;37631:387;37812:2;37826:47;;;37797:18;;37887:121;37797:18;37887:121;;38025:488;38234:2;38248:47;;;38219:18;;38309:121;38219:18;38309:121;;;38301:129;;38441:62;38499:2;38488:9;38484:18;38475:6;38441:62;;38520:387;38701:2;38715:47;;;38686:18;;38776:121;38686:18;38776:121;;38914:488;39123:2;39137:47;;;39108:18;;39198:121;39108:18;39198:121;;39409:387;39590:2;39604:47;;;39575:18;;39665:121;39575:18;39665:121;;39803:488;40012:2;40026:47;;;39997:18;;40087:121;39997:18;40087:121;;40298:387;40479:2;40493:47;;;40464:18;;40554:121;40464:18;40554:121;;40692:387;40873:2;40887:47;;;40858:18;;40948:121;40858:18;40948:121;;41086:387;41267:2;41281:47;;;41252:18;;41342:121;41252:18;41342:121;;41480:387;41661:2;41675:47;;;41646:18;;41736:121;41646:18;41736:121;;41874:387;42055:2;42069:47;;;42040:18;;42130:121;42040:18;42130:121;;42268:488;42477:2;42491:47;;;42462:18;;42552:121;42462:18;42552:121;;42763:488;42972:2;42986:47;;;42957:18;;43047:121;42957:18;43047:121;;43258:387;43439:2;43453:47;;;43424:18;;43514:121;43424:18;43514:121;;43652:387;43833:2;43847:47;;;43818:18;;43908:121;43818:18;43908:121;;44046:488;44255:2;44269:47;;;44240:18;;44330:121;44240:18;44330:121;;44541:488;44750:2;44764:47;;;44735:18;;44825:121;44735:18;44825:121;;45036:387;45217:2;45231:47;;;45202:18;;45292:121;45202:18;45292:121;;45430:387;45611:2;45625:47;;;45596:18;;45686:121;45596:18;45686:121;;45824:387;46005:2;46019:47;;;45990:18;;46080:121;45990:18;46080:121;;46218:488;46427:2;46441:47;;;46412:18;;46502:121;46412:18;46502:121;;46713:387;46894:2;46908:47;;;46879:18;;46969:121;46879:18;46969:121;;47107:387;47288:2;47302:47;;;47273:18;;47363:121;47273:18;47363:121;;47501:387;47682:2;47696:47;;;47667:18;;47757:121;47667:18;47757:121;;47895:387;48076:2;48090:47;;;48061:18;;48151:121;48061:18;48151:121;;48289:387;48470:2;48484:47;;;48455:18;;48545:121;48455:18;48545:121;;48683:387;48864:2;48878:47;;;48849:18;;48939:121;48849:18;48939:121;;49077:387;49258:2;49272:47;;;49243:18;;49333:121;49243:18;49333:121;;49471:333;49625:2;49639:47;;;49610:18;;49700:94;49610:18;49780:6;49700:94;;49811:590;50047:2;50061:47;;;50032:18;;50122:98;50032:18;50206:6;50122:98;;;50114:106;;50268:9;50262:4;50258:20;50253:2;50242:9;50238:18;50231:48;50293:98;50386:4;50377:6;50293:98;;50408:578;50638:2;50652:47;;;50623:18;;50713:95;50623:18;50794:6;50713:95;;;50705:103;;50856:9;50850:4;50846:20;50841:2;50830:9;50826:18;50819:48;50881:95;50971:4;50962:6;50881:95;;50993:763;51269:2;51283:47;;;51254:18;;51344:95;51254:18;51425:6;51344:95;;;51336:103;;51487:9;51481:4;51477:20;51472:2;51461:9;51457:18;51450:48;51512:95;51602:4;51593:6;51512:95;;;51504:103;;51655:9;51649:4;51645:20;51640:2;51629:9;51625:18;51618:48;51680:66;51741:4;51732:6;51680:66;;;51672:74;51240:516;-1:-1;;;;;51240:516;51963:256;52025:2;52019:9;52051:17;;;52126:18;52111:34;;52147:22;;;52108:62;52105:2;;;52183:1;52180;52173:12;52105:2;52199;52192:22;52003:216;;-1:-1;52003:216;52226:273;;52400:18;52392:6;52389:30;52386:2;;;52432:1;52429;52422:12;52386:2;-1:-1;52461:4;52449:17;;;52479:15;;52323:176;52506:232;;52662:18;52654:6;52651:30;52648:2;;;52694:1;52691;52684:12;52648:2;-1:-1;52723:4;52711:17;;52585:153;53246:258;;53389:18;53381:6;53378:30;53375:2;;;53421:1;53418;53411:12;53375:2;-1:-1;53494:4;53465;53442:17;;;;-1:-1;;53438:33;53484:15;;53312:192;53513:136;53637:4;53625:17;;53606:43;53660:161;;53762:15;;;53809:4;53796:18;;;53754:67;54343:122;54448:12;;54432:33;54472:124;54579:12;;54563:33;54603:92;-1:-1;54687:3;;54671:24;55466:134;55592:1;55582:12;;55563:37;56108:128;-1:-1;;;;;56177:54;;56160:76;56243:92;56316:13;56309:21;;56292:43;56428:126;;56515:1;56505:12;;56495:2;;56521:9;57138:135;;57237:31;57262:5;57237:31;;57840:131;;57926:40;57960:5;57926:40;;57979:145;58060:6;58055:3;58050;58037:30;-1:-1;58116:1;58098:16;;58091:27;58030:94;58133:268;58198:1;58205:101;58219:6;58216:1;58213:13;58205:101;;;58286:11;;;58280:18;58267:11;;;58260:39;58241:2;58234:10;58205:101;;;58321:6;58318:1;58315:13;58312:2;;;-1:-1;;58386:1;58368:16;;58361:27;58182:219;58409:97;58497:2;58477:14;-1:-1;;58473:28;;58457:49",
  "source": "pragma solidity ^0.4.23;\npragma experimental ABIEncoderV2;\n\nimport '../gameChannel/GameChannel.sol';\n\ncontract MyDappGame is GameChannel {\n\n    string public name = 'MyDappGame';\n\n    constructor(\n        IGameEngine _engine,\n        IToken _token,\n        IPlatform _platform,\n        ISignidice _signidice\n    )\n        public GameChannel(_engine, _token, _platform, _signidice)\n    {\n        gameDevReward  = uint256(25);\n        bankrollReward = uint256(25);\n        platformReward = uint256(25);\n        refererReward  = uint256(25);\n        minBet         = uint256(1);\n        developer      = address(0x42);\n    }\n\n    function getName() external view returns(string) {\n        return name;\n    }\n}",
  "sourcePath": "/Users/fanyshu/Documents/Projects/DCLabs/monorepo/packages/dc-sdk-example/dapp/contracts/game/myDappGame.sol",
  "ast": {
    "absolutePath": "/Users/fanyshu/Documents/Projects/DCLabs/monorepo/packages/dc-sdk-example/dapp/contracts/game/myDappGame.sol",
    "exportedSymbols": {
      "MyDappGame": [
        434
      ]
    },
    "id": 435,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 364,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".23"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:4"
      },
      {
        "id": 365,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "25:33:4"
      },
      {
        "absolutePath": "/Users/fanyshu/Documents/Projects/DCLabs/monorepo/packages/dc-sdk-example/dapp/contracts/gameChannel/GameChannel.sol",
        "file": "../gameChannel/GameChannel.sol",
        "id": 366,
        "nodeType": "ImportDirective",
        "scope": 435,
        "sourceUnit": 1674,
        "src": "60:40:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 367,
              "name": "GameChannel",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1673,
              "src": "125:11:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_GameChannel_$1673",
                "typeString": "contract GameChannel"
              }
            },
            "id": 368,
            "nodeType": "InheritanceSpecifier",
            "src": "125:11:4"
          }
        ],
        "contractDependencies": [
          362,
          1673
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 434,
        "linearizedBaseContracts": [
          434,
          1673,
          362
        ],
        "name": "MyDappGame",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 371,
            "name": "name",
            "nodeType": "VariableDeclaration",
            "scope": 434,
            "src": "144:33:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 369,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "144:6:4",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "4d794461707047616d65",
              "id": 370,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "165:12:4",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_a11ef814e8cdb7b40d88d6831100a94631e2651f535a57e69fafcd20d06dfa7b",
                "typeString": "literal_string \"MyDappGame\""
              },
              "value": "MyDappGame"
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 424,
              "nodeType": "Block",
              "src": "385:236:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 392,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 388,
                      "name": "gameDevReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 502,
                      "src": "395:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "3235",
                          "id": 390,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "420:2:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          },
                          "value": "25"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          }
                        ],
                        "id": 389,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "412:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 391,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "412:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "395:28:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 393,
                  "nodeType": "ExpressionStatement",
                  "src": "395:28:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 398,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 394,
                      "name": "bankrollReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 504,
                      "src": "433:14:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "3235",
                          "id": 396,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "458:2:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          },
                          "value": "25"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          }
                        ],
                        "id": 395,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "450:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 397,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "450:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "433:28:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 399,
                  "nodeType": "ExpressionStatement",
                  "src": "433:28:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 404,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 400,
                      "name": "platformReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 506,
                      "src": "471:14:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "3235",
                          "id": 402,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "496:2:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          },
                          "value": "25"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          }
                        ],
                        "id": 401,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "488:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 403,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "488:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "471:28:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 405,
                  "nodeType": "ExpressionStatement",
                  "src": "471:28:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 410,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 406,
                      "name": "refererReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 508,
                      "src": "509:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "3235",
                          "id": 408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "534:2:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          },
                          "value": "25"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          }
                        ],
                        "id": 407,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "526:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 409,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "526:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "509:28:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 411,
                  "nodeType": "ExpressionStatement",
                  "src": "509:28:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 416,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 412,
                      "name": "minBet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 512,
                      "src": "547:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 414,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "572:1:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          }
                        ],
                        "id": 413,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "564:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 415,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "564:10:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "547:27:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 417,
                  "nodeType": "ExpressionStatement",
                  "src": "547:27:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 422,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 418,
                      "name": "developer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 510,
                      "src": "584:9:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30783432",
                          "id": 420,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "609:4:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_66_by_1",
                            "typeString": "int_const 66"
                          },
                          "value": "0x42"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_66_by_1",
                            "typeString": "int_const 66"
                          }
                        ],
                        "id": 419,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "601:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 421,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "601:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "584:30:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 423,
                  "nodeType": "ExpressionStatement",
                  "src": "584:30:4"
                }
              ]
            },
            "documentation": null,
            "id": 425,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 382,
                    "name": "_engine",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 373,
                    "src": "341:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IGameEngine_$1729",
                      "typeString": "contract IGameEngine"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 383,
                    "name": "_token",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 375,
                    "src": "350:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IToken_$1822",
                      "typeString": "contract IToken"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 384,
                    "name": "_platform",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 377,
                    "src": "358:9:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IPlatform_$1755",
                      "typeString": "contract IPlatform"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 385,
                    "name": "_signidice",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 379,
                    "src": "369:10:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ISignidice_$1785",
                      "typeString": "contract ISignidice"
                    }
                  }
                ],
                "id": 386,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 381,
                  "name": "GameChannel",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1673,
                  "src": "329:11:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_GameChannel_$1673_$",
                    "typeString": "type(contract GameChannel)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "329:51:4"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 380,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 373,
                  "name": "_engine",
                  "nodeType": "VariableDeclaration",
                  "scope": 425,
                  "src": "205:19:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IGameEngine_$1729",
                    "typeString": "contract IGameEngine"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 372,
                    "name": "IGameEngine",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1729,
                    "src": "205:11:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IGameEngine_$1729",
                      "typeString": "contract IGameEngine"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 375,
                  "name": "_token",
                  "nodeType": "VariableDeclaration",
                  "scope": 425,
                  "src": "234:13:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IToken_$1822",
                    "typeString": "contract IToken"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 374,
                    "name": "IToken",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1822,
                    "src": "234:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IToken_$1822",
                      "typeString": "contract IToken"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 377,
                  "name": "_platform",
                  "nodeType": "VariableDeclaration",
                  "scope": 425,
                  "src": "257:19:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IPlatform_$1755",
                    "typeString": "contract IPlatform"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 376,
                    "name": "IPlatform",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1755,
                    "src": "257:9:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IPlatform_$1755",
                      "typeString": "contract IPlatform"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 379,
                  "name": "_signidice",
                  "nodeType": "VariableDeclaration",
                  "scope": 425,
                  "src": "286:21:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ISignidice_$1785",
                    "typeString": "contract ISignidice"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 378,
                    "name": "ISignidice",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1785,
                    "src": "286:10:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ISignidice_$1785",
                      "typeString": "contract ISignidice"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "195:118:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 387,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "385:0:4"
            },
            "scope": 434,
            "src": "184:437:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 432,
              "nodeType": "Block",
              "src": "676:28:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 430,
                    "name": "name",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 371,
                    "src": "693:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 429,
                  "id": 431,
                  "nodeType": "Return",
                  "src": "686:11:4"
                }
              ]
            },
            "documentation": null,
            "id": 433,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getName",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 426,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "643:2:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 429,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 428,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 433,
                  "src": "668:6:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 427,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "668:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "667:8:4"
            },
            "scope": 434,
            "src": "627:77:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 435,
        "src": "102:604:4"
      }
    ],
    "src": "0:706:4"
  },
  "legacyAST": {
    "absolutePath": "/Users/fanyshu/Documents/Projects/DCLabs/monorepo/packages/dc-sdk-example/dapp/contracts/game/myDappGame.sol",
    "exportedSymbols": {
      "MyDappGame": [
        434
      ]
    },
    "id": 435,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 364,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".23"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:4"
      },
      {
        "id": 365,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "25:33:4"
      },
      {
        "absolutePath": "/Users/fanyshu/Documents/Projects/DCLabs/monorepo/packages/dc-sdk-example/dapp/contracts/gameChannel/GameChannel.sol",
        "file": "../gameChannel/GameChannel.sol",
        "id": 366,
        "nodeType": "ImportDirective",
        "scope": 435,
        "sourceUnit": 1674,
        "src": "60:40:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 367,
              "name": "GameChannel",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1673,
              "src": "125:11:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_GameChannel_$1673",
                "typeString": "contract GameChannel"
              }
            },
            "id": 368,
            "nodeType": "InheritanceSpecifier",
            "src": "125:11:4"
          }
        ],
        "contractDependencies": [
          362,
          1673
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 434,
        "linearizedBaseContracts": [
          434,
          1673,
          362
        ],
        "name": "MyDappGame",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 371,
            "name": "name",
            "nodeType": "VariableDeclaration",
            "scope": 434,
            "src": "144:33:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 369,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "144:6:4",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "4d794461707047616d65",
              "id": 370,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "165:12:4",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_a11ef814e8cdb7b40d88d6831100a94631e2651f535a57e69fafcd20d06dfa7b",
                "typeString": "literal_string \"MyDappGame\""
              },
              "value": "MyDappGame"
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 424,
              "nodeType": "Block",
              "src": "385:236:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 392,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 388,
                      "name": "gameDevReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 502,
                      "src": "395:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "3235",
                          "id": 390,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "420:2:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          },
                          "value": "25"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          }
                        ],
                        "id": 389,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "412:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 391,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "412:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "395:28:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 393,
                  "nodeType": "ExpressionStatement",
                  "src": "395:28:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 398,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 394,
                      "name": "bankrollReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 504,
                      "src": "433:14:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "3235",
                          "id": 396,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "458:2:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          },
                          "value": "25"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          }
                        ],
                        "id": 395,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "450:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 397,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "450:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "433:28:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 399,
                  "nodeType": "ExpressionStatement",
                  "src": "433:28:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 404,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 400,
                      "name": "platformReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 506,
                      "src": "471:14:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "3235",
                          "id": 402,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "496:2:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          },
                          "value": "25"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          }
                        ],
                        "id": 401,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "488:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 403,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "488:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "471:28:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 405,
                  "nodeType": "ExpressionStatement",
                  "src": "471:28:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 410,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 406,
                      "name": "refererReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 508,
                      "src": "509:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "3235",
                          "id": 408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "534:2:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          },
                          "value": "25"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_25_by_1",
                            "typeString": "int_const 25"
                          }
                        ],
                        "id": 407,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "526:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 409,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "526:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "509:28:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 411,
                  "nodeType": "ExpressionStatement",
                  "src": "509:28:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 416,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 412,
                      "name": "minBet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 512,
                      "src": "547:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 414,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "572:1:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          }
                        ],
                        "id": 413,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "564:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 415,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "564:10:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "547:27:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 417,
                  "nodeType": "ExpressionStatement",
                  "src": "547:27:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 422,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 418,
                      "name": "developer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 510,
                      "src": "584:9:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30783432",
                          "id": 420,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "609:4:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_66_by_1",
                            "typeString": "int_const 66"
                          },
                          "value": "0x42"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_66_by_1",
                            "typeString": "int_const 66"
                          }
                        ],
                        "id": 419,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "601:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 421,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "601:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "584:30:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 423,
                  "nodeType": "ExpressionStatement",
                  "src": "584:30:4"
                }
              ]
            },
            "documentation": null,
            "id": 425,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 382,
                    "name": "_engine",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 373,
                    "src": "341:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IGameEngine_$1729",
                      "typeString": "contract IGameEngine"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 383,
                    "name": "_token",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 375,
                    "src": "350:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IToken_$1822",
                      "typeString": "contract IToken"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 384,
                    "name": "_platform",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 377,
                    "src": "358:9:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IPlatform_$1755",
                      "typeString": "contract IPlatform"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 385,
                    "name": "_signidice",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 379,
                    "src": "369:10:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ISignidice_$1785",
                      "typeString": "contract ISignidice"
                    }
                  }
                ],
                "id": 386,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 381,
                  "name": "GameChannel",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1673,
                  "src": "329:11:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_GameChannel_$1673_$",
                    "typeString": "type(contract GameChannel)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "329:51:4"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 380,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 373,
                  "name": "_engine",
                  "nodeType": "VariableDeclaration",
                  "scope": 425,
                  "src": "205:19:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IGameEngine_$1729",
                    "typeString": "contract IGameEngine"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 372,
                    "name": "IGameEngine",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1729,
                    "src": "205:11:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IGameEngine_$1729",
                      "typeString": "contract IGameEngine"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 375,
                  "name": "_token",
                  "nodeType": "VariableDeclaration",
                  "scope": 425,
                  "src": "234:13:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IToken_$1822",
                    "typeString": "contract IToken"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 374,
                    "name": "IToken",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1822,
                    "src": "234:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IToken_$1822",
                      "typeString": "contract IToken"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 377,
                  "name": "_platform",
                  "nodeType": "VariableDeclaration",
                  "scope": 425,
                  "src": "257:19:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IPlatform_$1755",
                    "typeString": "contract IPlatform"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 376,
                    "name": "IPlatform",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1755,
                    "src": "257:9:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IPlatform_$1755",
                      "typeString": "contract IPlatform"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 379,
                  "name": "_signidice",
                  "nodeType": "VariableDeclaration",
                  "scope": 425,
                  "src": "286:21:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ISignidice_$1785",
                    "typeString": "contract ISignidice"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 378,
                    "name": "ISignidice",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1785,
                    "src": "286:10:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ISignidice_$1785",
                      "typeString": "contract ISignidice"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "195:118:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 387,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "385:0:4"
            },
            "scope": 434,
            "src": "184:437:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 432,
              "nodeType": "Block",
              "src": "676:28:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 430,
                    "name": "name",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 371,
                    "src": "693:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 429,
                  "id": 431,
                  "nodeType": "Return",
                  "src": "686:11:4"
                }
              ]
            },
            "documentation": null,
            "id": 433,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getName",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 426,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "643:2:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 429,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 428,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 433,
                  "src": "668:6:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 427,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "668:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "667:8:4"
            },
            "scope": 434,
            "src": "627:77:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 435,
        "src": "102:604:4"
      }
    ],
    "src": "0:706:4"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {
    "1543924054456": {
      "events": {},
      "links": {
        "Utils": "0xf25186B5081Ff5cE73482AD761DB0eB0d25abfBF"
      },
      "address": "0x2C2B9C9a4a25e24B174f26114e8926a9f2128FE4",
      "transactionHash": "0x26ab2523c2d2824381a2356a96bbb8b011da65f2793bd8a5f7ea1a816d8ea4dc"
    }
  },
  "schemaVersion": "3.0.0-beta.0",
  "updatedAt": "2018-12-04T11:48:20.873Z"
}