lpp-campaign
Version:
Simple campaign plugin with reviewer for liquidpledging.
456 lines • 65.5 kB
JSON
{
"contractName": "LPPCampaignFactory",
"source": "./contracts/LPPCampaignFactory.sol",
"compilerOutput": {
"abi": [
{
"constant": true,
"inputs": [],
"name": "APM_NODE",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "KERNEL_APP_ID",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "APP_ADDR_NAMESPACE",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "KERNEL_APP",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "LP_APP_ID",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getRecoveryVault",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "CAMPAIGN_APP_ID",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "name",
"type": "string"
},
{
"name": "url",
"type": "string"
},
{
"name": "parentProject",
"type": "uint64"
},
{
"name": "reviewer",
"type": "address"
}
],
"name": "newCampaign",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "CORE_NAMESPACE",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "token",
"type": "address"
}
],
"name": "allowRecoverability",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "ETH",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "LP_APP_INSTANCE",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_token",
"type": "address"
}
],
"name": "transferToVault",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "ACL_APP",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "CAMPAIGN_APP",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "ACL_APP_ID",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "ETH_NODE",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_kernel",
"type": "address"
},
{
"name": "_appId",
"type": "bytes32"
},
{
"name": "_initializePayload",
"type": "bytes"
}
],
"name": "newAppProxyPinned",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "VAULT_APP_ID",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "kernel",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "APP_BASES_NAMESPACE",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_kernel",
"type": "address"
},
{
"name": "_appId",
"type": "bytes32"
}
],
"name": "newAppProxy",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_kernel",
"type": "address"
},
{
"name": "_appId",
"type": "bytes32"
},
{
"name": "_initializePayload",
"type": "bytes"
}
],
"name": "newAppProxy",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_kernel",
"type": "address"
},
{
"name": "_appId",
"type": "bytes32"
}
],
"name": "newAppProxyPinned",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"name": "_kernel",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "campaign",
"type": "address"
}
],
"name": "DeployCampaign",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "proxy",
"type": "address"
},
{
"indexed": false,
"name": "isUpgradeable",
"type": "bool"
},
{
"indexed": false,
"name": "appId",
"type": "bytes32"
}
],
"name": "NewAppProxy",
"type": "event"
}
],
"evm": {
"bytecode": {
"object": "6060604052341561000f57600080fd5b60405160208061245a83398101604052808051915050600160a060020a038116151561003a57600080fd5b60008054600160a060020a03909216600160a060020a03199092169190911790556123f08061006a6000396000f3006060604052600436106200013d5763ffffffff60e060020a600035041663097207788114620001425780631113ed0d146200016a578063178e607914620001805780632501269914620001965780633074426714620001ac57806332f0a3b514620001c257806358b6912114620001f45780635d2d4a43146200020a578063756f604914620002bc5780637e7db6e114620002d25780638322fff214620003085780638eab4b59146200031e5780639d4941d81462000334578063a3b4b07f1462000356578063bddb6f26146200036c578063cbcc65eb1462000382578063cc473be31462000398578063d162f8b014620003ae578063d2dd420f1462000416578063d4aae0c4146200042c578063db8a61d41462000442578063e156a8f31462000458578063ede658b0146200047d578063ff289fc514620004e5575b600080fd5b34156200014e57600080fd5b620001586200050a565b60405190815260200160405180910390f35b34156200017657600080fd5b620001586200052e565b34156200018c57600080fd5b6200015862000552565b3415620001a257600080fd5b6200015862000576565b3415620001b857600080fd5b620001586200059a565b3415620001ce57600080fd5b620001d8620005ce565b604051600160a060020a03909116815260200160405180910390f35b34156200020057600080fd5b6200015862000637565b34156200021657600080fd5b620002ba60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506200065a915050565b005b3415620002c857600080fd5b6200015862000a79565b3415620002de57600080fd5b620002f4600160a060020a036004351662000a9d565b604051901515815260200160405180910390f35b34156200031457600080fd5b620001d862000aa3565b34156200032a57600080fd5b6200015862000aa8565b34156200034057600080fd5b620002ba600160a060020a036004351662000b14565b34156200036257600080fd5b6200015862000c9b565b34156200037857600080fd5b6200015862000cbf565b34156200038e57600080fd5b6200015862000d1a565b3415620003a457600080fd5b6200015862000d3e565b3415620003ba57600080fd5b620001d860048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000d6295505050505050565b34156200042257600080fd5b6200015862000e6b565b34156200043857600080fd5b620001d862000e9f565b34156200044e57600080fd5b6200015862000eae565b34156200046457600080fd5b620001d8600160a060020a036004351660243562000ed2565b34156200048957600080fd5b620001d860048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000f0c95505050505050565b3415620004f157600080fd5b620001d8600160a060020a036004351660243562001015565b7f9065c3e7f7b7ef1ef4e53d2d0b8e0cef02874ab020c1ece79d5f0d3d0111c0ba81565b7f3b4bf6bf3ad5000ecf0f989d5befde585c6860fea3e574a4fab4c49d1c177d9c81565b7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb81565b7f2b7d19d0575c228f8d9326801e14149d284dc5bb7b1541c5ad712ae4b2fcaadb81565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b60008054600160a060020a03166332f0a3b582604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156200061757600080fd5b6102c65a03f115156200062957600080fd5b505050604051805191505090565b604051600080516020620023a58339815191528152600c01604051809103902081565b6000805481908190600160a060020a03166342c71f1d7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f604051600080516020620023a58339815191528152600c016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156200070857600080fd5b6102c65a03f115156200071a57600080fd5b5050506040518051935050600160a060020a03831615156200073b57600080fd5b600054600160a060020a03166342c71f1d7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515620007f557600080fd5b6102c65a03f115156200080757600080fd5b5050506040518051925050600160a060020a03821615156200082857600080fd5b6000546200085f90600160a060020a0316604051600080516020620023a58339815191528152600c01604051809103902062000ed2565b905081600160a060020a03166379f4542e8260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620008b057600080fd5b6102c65a03f11515620008c257600080fd5b50505080600160a060020a03166327042635838989898960405160e060020a63ffffffff8816028152600160a060020a038087166004830190815267ffffffffffffffff85166064840152908316608483015260a0602483019081529091604481019060a40187818151815260200191508051906020019080838360005b838110156200095a57808201518382015260200162000940565b50505050905090810190601f168015620009885780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b83811015620009c0578082015183820152602001620009a6565b50505050905090810190601f168015620009ee5780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b151562000a1257600080fd5b6102c65a03f1151562000a2457600080fd5b50505062000a33818362001048565b7fe43e0a5b0ade2ae4b524966cc4594cf8e36b2faef0f6d24bb720352aa87bed8581604051600160a060020a03909116815260200160405180910390a150505050505050565b7fc681a85306374a5ab27f0bbc385296a54bcd314a1948b6cf61c4ea1bc44bb9f881565b50600190565b600081565b7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e016040518091039020604051918252602082015260409081019051809103902081565b60008062000b228362000a9d565b151562000b2e57600080fd5b62000b38620005ce565b915062000b45826200127f565b151562000b5157600080fd5b600160a060020a038316151562000ba65781600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f19350505050151562000ba057600080fd5b62000c96565b82600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151562000bfe57600080fd5b6102c65a03f1151562000c1057600080fd5b5050506040518051915050600160a060020a03831663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151562000c7957600080fd5b6102c65a03f1151562000c8b57600080fd5b505050604051805150505b505050565b7f4b8e03a458a6ccec5d9077c2490964c1333dd3c72e2db408d7d9a7a36ef5c41a81565b7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f604051600080516020620023a58339815191528152600c016040518091039020604051918252602082015260409081019051809103902081565b7fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a81565b7f93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae81565b60008084848462000d72620012ae565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000dc357808201518382015260200162000da9565b50505050905090810190601f16801562000df15780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000e0f57600080fd5b90507fd880e726dced8808d727f02dd0e6fdd3a945b24bfee77e13367bcbe61ddbaf4781600086604051600160a060020a03909316835290151560208301526040808301919091526060909101905180910390a1949350505050565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b600054600160a060020a031681565b7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f81565b600062000f058383600060405180591062000eea5750595b818152601f19601f8301168101602001604052905062000f0c565b9392505050565b60008084848462000f1c620012bf565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000f6d57808201518382015260200162000f53565b50505050905090810190601f16801562000f9b5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000fb957600080fd5b90507fd880e726dced8808d727f02dd0e6fdd3a945b24bfee77e13367bcbe61ddbaf4781600186604051600160a060020a03909316835290151560208301526040808301919091526060909101905180910390a1949350505050565b600062000f05838360006040518059106200102d5750595b818152601f19601f8301168101602001604052905062000d62565b6000805481908190600160a060020a031663de28735982604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156200109557600080fd5b6102c65a03f11515620010a757600080fd5b5050506040518051935050600160a060020a0385166375b238fc6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515620010f957600080fd5b6102c65a03f115156200110b57600080fd5b5050506040518051925050600160a060020a038516634ba8d0736000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156200115d57600080fd5b6102c65a03f115156200116f57600080fd5b5050506040518051915050600160a060020a03831663be0384788587848160405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515620011e457600080fd5b6102c65a03f11515620011f657600080fd5b50505082600160a060020a031663be0384783387853360405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156200126357600080fd5b6102c65a03f115156200127557600080fd5b5050505050505050565b600080600160a060020a03831615156200129d5760009150620012a8565b823b90506000811191505b50919050565b60405161086c80620012d183390190565b6040516108688062001b3d8339019056006060604052341561000f57600080fd5b60405161086c38038061086c83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026105061704565b905060008251111561012457610095816401000000006104d961023b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610506176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610268565b60008054600160a060020a03166342c71f1d7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561021b57600080fd5b6102c65a03f1151561022c57600080fd5b50505060405180519392505050565b600080600160a060020a03831615156102575760009150610262565b823b90506000811191505b50919050565b6105f5806102776000396000f3006060604052600436106100e55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166309720778811461019a5780630ceafa2a146101bf5780631113ed0d146101d2578063178e6079146101e557806325012699146101f85780632b2584f61461020b5780634555d5c91461021e5780635c60da1b14610231578063756f6049146102605780637e84a4ff1461027357806380afdea814610286578063a3b4b07f14610299578063cbcc65eb146102ac578063cc473be3146102bf578063d4aae0c4146102d2578063db8a61d4146102e5575b60006127105a1015610153576000341180156100ff575036155b151561010a57600080fd5b7f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee13334604051600160a060020a03909216825260208201526040908101905180910390a1610197565b61015b6102f8565b9050610197816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610307945050505050565b50005b34156101a557600080fd5b6101ad610317565b60405190815260200160405180910390f35b34156101ca57600080fd5b6101ad61033b565b34156101dd57600080fd5b6101ad610341565b34156101f057600080fd5b6101ad610365565b341561020357600080fd5b6101ad610389565b341561021657600080fd5b6101ad6103ad565b341561022957600080fd5b6101ad6103b2565b341561023c57600080fd5b6102446102f8565b604051600160a060020a03909116815260200160405180910390f35b341561026b57600080fd5b6101ad6103b7565b341561027e57600080fd5b6101ad6103db565b341561029157600080fd5b6101ad6103e0565b34156102a457600080fd5b6101ad6103e6565b34156102b757600080fd5b6101ad61040a565b34156102ca57600080fd5b6101ad61042e565b34156102dd57600080fd5b610244610452565b34156102f057600080fd5b6101ad610461565b600254600160a060020a031690565b61031382826000610485565b5050565b7f9065c3e7f7b7ef1ef4e53d2d0b8e0cef02874ab020c1ece79d5f0d3d0111c0ba81565b61271081565b7f3b4bf6bf3ad5000ecf0f989d5befde585c6860fea3e574a4fab4c49d1c177d9c81565b7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb81565b7f2b7d19d0575c228f8d9326801e14149d284dc5bb7b1541c5ad712ae4b2fcaadb81565b600181565b600190565b7fc681a85306374a5ab27f0bbc385296a54bcd314a1948b6cf61c4ea1bc44bb9f881565b600281565b60015481565b7f4b8e03a458a6ccec5d9077c2490964c1333dd3c72e2db408d7d9a7a36ef5c41a81565b7fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a81565b7f93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae81565b600054600160a060020a031681565b7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f81565b6000806000610493866104d9565b151561049e57600080fd5b5061271060008086516020880189855a03f43d93509150838310156104c257600080fd5b604051836000823e8280156104d5578482f35b8482fd5b600080600160a060020a03831615156104f55760009150610500565b823b90506000811191505b50919050565b60008054600160a060020a03166342c71f1d7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a957600080fd5b6102c65a03f115156105ba57600080fd5b505050604051805193925050505600a165627a7a723058202eab0453a4a77f432a5a2f69782ea59ff68fef179836c3250afe44c92413d4da00296060604052341561000f57600080fd5b60405161086838038061086883398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104af1704565b905060008251111561012457610095816401000000006105d36101f382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b50505050505050610220565b60008054600160a060020a03166342c71f1d7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101d357600080fd5b6102c65a03f115156101e457600080fd5b50505060405180519392505050565b600080600160a060020a038316151561020f576000915061021a565b823b90506000811191505b50919050565b6106398061022f6000396000f3006060604052600436106100e55763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630972077881146101a75780630ceafa2a146101cc5780631113ed0d146101df578063178e6079146101f257806325012699146102055780632b2584f6146102185780634555d5c91461022b5780635c60da1b1461023e578063756f60491461027a5780637e84a4ff1461028d57806380afdea8146102a0578063a3b4b07f146102b3578063cbcc65eb146102c6578063cc473be3146102d9578063d4aae0c4146102ec578063db8a61d4146102ff575b60006127105a1015610160576000341180156100ff575036155b151561010a57600080fd5b7f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1333460405173ffffffffffffffffffffffffffffffffffffffff909216825260208201526040908101905180910390a16101a4565b610168610312565b90506101a4816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610324945050505050565b50005b34156101b257600080fd5b6101ba610334565b60405190815260200160405180910390f35b34156101d757600080fd5b6101ba610358565b34156101ea57600080fd5b6101ba61035e565b34156101fd57600080fd5b6101ba610382565b341561021057600080fd5b6101ba6103a6565b341561022357600080fd5b6101ba6103ca565b341561023657600080fd5b6101ba6103cf565b341561024957600080fd5b610251610312565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561028557600080fd5b6101ba6103d4565b341561029857600080fd5b6101ba6103f8565b34156102ab57600080fd5b6101ba6103fd565b34156102be57600080fd5b6101ba610403565b34156102d157600080fd5b6101ba610427565b34156102e457600080fd5b6101ba61044b565b34156102f757600080fd5b61025161046f565b341561030a57600080fd5b6101ba61048b565b600061031f6001546104af565b905090565b6103308282600061057f565b5050565b7f9065c3e7f7b7ef1ef4e53d2d0b8e0cef02874ab020c1ece79d5f0d3d0111c0ba81565b61271081565b7f3b4bf6bf3ad5000ecf0f989d5befde585c6860fea3e574a4fab4c49d1c177d9c81565b7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb81565b7f2b7d19d0575c228f8d9326801e14149d284dc5bb7b1541c5ad712ae4b2fcaadb81565b600181565b600290565b7fc681a85306374a5ab27f0bbc385296a54bcd314a1948b6cf61c4ea1bc44bb9f881565b600281565b60015481565b7f4b8e03a458a6ccec5d9077c2490964c1333dd3c72e2db408d7d9a7a36ef5c41a81565b7fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a81565b7f93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae81565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f81565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055f57600080fd5b6102c65a03f1151561057057600080fd5b50505060405180519392505050565b600080600061058d866105d3565b151561059857600080fd5b5061271060008086516020880189855a03f43d93509150838310156105bc57600080fd5b604051836000823e8280156105cf578482f35b8482fd5b60008073ffffffffffffffffffffffffffffffffffffffff831615156105fc5760009150610607565b823b90506000811191505b509190505600a165627a7a72305820d0cd8cb891027e727a3a5e23391e7accbccc4ac28afa8d6178613fa9206fd58a00296c70702d63616d706169676e0000000000000000000000000000000000000000a165627a7a723058208c64f3aa1bfdb398adc7f3e4be356f8336ea5795c93b760f1e6727a56949fee30029",
"sourceMap": "341:2087:1:-;;;751:352;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1047:14:1;;;;1039:23;;;;;;1072:6;:24;;-1:-1:-1;;;;;1072:24:1;;;-1:-1:-1;;;;;;1072:24:1;;;;;;;;;341:2087;;;;;;"
},
"deployedBytecode": {
"object": "6060604052600436106200013d5763ffffffff60e060020a600035041663097207788114620001425780631113ed0d146200016a578063178e607914620001805780632501269914620001965780633074426714620001ac57806332f0a3b514620001c257806358b6912114620001f45780635d2d4a43146200020a578063756f604914620002bc5780637e7db6e114620002d25780638322fff214620003085780638eab4b59146200031e5780639d4941d81462000334578063a3b4b07f1462000356578063bddb6f26146200036c578063cbcc65eb1462000382578063cc473be31462000398578063d162f8b014620003ae578063d2dd420f1462000416578063d4aae0c4146200042c578063db8a61d41462000442578063e156a8f31462000458578063ede658b0146200047d578063ff289fc514620004e5575b600080fd5b34156200014e57600080fd5b620001586200050a565b60405190815260200160405180910390f35b34156200017657600080fd5b620001586200052e565b34156200018c57600080fd5b6200015862000552565b3415620001a257600080fd5b6200015862000576565b3415620001b857600080fd5b620001586200059a565b3415620001ce57600080fd5b620001d8620005ce565b604051600160a060020a03909116815260200160405180910390f35b34156200020057600080fd5b6200015862000637565b34156200021657600080fd5b620002ba60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506200065a915050565b005b3415620002c857600080fd5b6200015862000a79565b3415620002de57600080fd5b620002f4600160a060020a036004351662000a9d565b604051901515815260200160405180910390f35b34156200031457600080fd5b620001d862000aa3565b34156200032a57600080fd5b6200015862000aa8565b34156200034057600080fd5b620002ba600160a060020a036004351662000b14565b34156200036257600080fd5b6200015862000c9b565b34156200037857600080fd5b6200015862000cbf565b34156200038e57600080fd5b6200015862000d1a565b3415620003a457600080fd5b6200015862000d3e565b3415620003ba57600080fd5b620001d860048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000d6295505050505050565b34156200042257600080fd5b6200015862000e6b565b34156200043857600080fd5b620001d862000e9f565b34156200044e57600080fd5b6200015862000eae565b34156200046457600080fd5b620001d8600160a060020a036004351660243562000ed2565b34156200048957600080fd5b620001d860048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000f0c95505050505050565b3415620004f157600080fd5b620001d8600160a060020a036004351660243562001015565b7f9065c3e7f7b7ef1ef4e53d2d0b8e0cef02874ab020c1ece79d5f0d3d0111c0ba81565b7f3b4bf6bf3ad5000ecf0f989d5befde585c6860fea3e574a4fab4c49d1c177d9c81565b7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb81565b7f2b7d19d0575c228f8d9326801e14149d284dc5bb7b1541c5ad712ae4b2fcaadb81565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b60008054600160a060020a03166332f0a3b582604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156200061757600080fd5b6102c65a03f115156200062957600080fd5b505050604051805191505090565b604051600080516020620023a58339815191528152600c01604051809103902081565b6000805481908190600160a060020a03166342c71f1d7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f604051600080516020620023a58339815191528152600c016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156200070857600080fd5b6102c65a03f115156200071a57600080fd5b5050506040518051935050600160a060020a03831615156200073b57600080fd5b600054600160a060020a03166342c71f1d7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515620007f557600080fd5b6102c65a03f115156200080757600080fd5b5050506040518051925050600160a060020a03821615156200082857600080fd5b6000546200085f90600160a060020a0316604051600080516020620023a58339815191528152600c01604051809103902062000ed2565b905081600160a060020a03166379f4542e8260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620008b057600080fd5b6102c65a03f11515620008c257600080fd5b50505080600160a060020a03166327042635838989898960405160e060020a63ffffffff8816028152600160a060020a038087166004830190815267ffffffffffffffff85166064840152908316608483015260a0602483019081529091604481019060a40187818151815260200191508051906020019080838360005b838110156200095a57808201518382015260200162000940565b50505050905090810190601f168015620009885780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b83811015620009c0578082015183820152602001620009a6565b50505050905090810190601f168015620009ee5780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b151562000a1257600080fd5b6102c65a03f1151562000a2457600080fd5b50505062000a33818362001048565b7fe43e0a5b0ade2ae4b524966cc4594cf8e36b2faef0f6d24bb720352aa87bed8581604051600160a060020a03909116815260200160405180910390a150505050505050565b7fc681a85306374a5ab27f0bbc385296a54bcd314a1948b6cf61c4ea1bc44bb9f881565b50600190565b600081565b7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e016040518091039020604051918252602082015260409081019051809103902081565b60008062000b228362000a9d565b151562000b2e57600080fd5b62000b38620005ce565b915062000b45826200127f565b151562000b5157600080fd5b600160a060020a038316151562000ba65781600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f19350505050151562000ba057600080fd5b62000c96565b82600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151562000bfe57600080fd5b6102c65a03f1151562000c1057600080fd5b5050506040518051915050600160a060020a03831663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151562000c7957600080fd5b6102c65a03f1151562000c8b57600080fd5b505050604051805150505b505050565b7f4b8e03a458a6ccec5d9077c2490964c1333dd3c72e2db408d7d9a7a36ef5c41a81565b7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f604051600080516020620023a58339815191528152600c016040518091039020604051918252602082015260409081019051809103902081565b7fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a81565b7f93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae81565b60008084848462000d72620012ae565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000dc357808201518382015260200162000da9565b50505050905090810190601f16801562000df15780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000e0f57600080fd5b90507fd880e726dced8808d727f02dd0e6fdd3a945b24bfee77e13367bcbe61ddbaf4781600086604051600160a060020a03909316835290151560208301526040808301919091526060909101905180910390a1949350505050565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b600054600160a060020a031681565b7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f81565b600062000f058383600060405180591062000eea5750595b818152601f19601f8301168101602001604052905062000f0c565b9392505050565b60008084848462000f1c620012bf565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000f6d57808201518382015260200162000f53565b50505050905090810190601f16801562000f9b5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000fb957600080fd5b90507fd880e726dced8808d727f02dd0e6fdd3a945b24bfee77e13367bcbe61ddbaf4781600186604051600160a060020a03909316835290151560208301526040808301919091526060909101905180910390a1949350505050565b600062000f05838360006040518059106200102d5750595b818152601f19601f8301168101602001604052905062000d62565b6000805481908190600160a060020a031663de28735982604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156200109557600080fd5b6102c65a03f11515620010a757600080fd5b5050506040518051935050600160a060020a0385166375b238fc6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515620010f957600080fd5b6102c65a03f115156200110b57600080fd5b5050506040518051925050600160a060020a038516634ba8d0736000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156200115d57600080fd5b6102c65a03f115156200116f57600080fd5b5050506040518051915050600160a060020a03831663be0384788587848160405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515620011e457600080fd5b6102c65a03f11515620011f657600080fd5b50505082600160a060020a031663be0384783387853360405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156200126357600080fd5b6102c65a03f115156200127557600080fd5b5050505050505050565b600080600160a060020a03831615156200129d5760009150620012a8565b823b90506000811191505b50919050565b60405161086c80620012d183390190565b6040516108688062001b3d8339019056006060604052341561000f57600080fd5b60405161086c38038061086c83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026105061704565b905060008251111561012457610095816401000000006104d961023b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610506176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610268565b60008054600160a060020a03166342c71f1d7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561021b57600080fd5b6102c65a03f1151561022c57600080fd5b50505060405180519392505050565b600080600160a060020a03831615156102575760009150610262565b823b90506000811191505b50919050565b6105f5806102776000396000f3006060604052600436106100e55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166309720778811461019a5780630ceafa2a146101bf5780631113ed0d146101d2578063178e6079146101e557806325012699146101f85780632b2584f61461020b5780634555d5c91461021e5780635c60da1b14610231578063756f6049146102605780637e84a4ff1461027357806380afdea814610286578063a3b4b07f14610299578063cbcc65eb146102ac578063cc473be3146102bf578063d4aae0c4146102d2578063db8a61d4146102e5575b60006127105a1015610153576000341180156100ff575036155b151561010a57600080fd5b7f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee13334604051600160a060020a03909216825260208201526040908101905180910390a1610197565b61015b6102f8565b9050610197816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610307945050505050565b50005b34156101a557600080fd5b6101ad610317565b60405190815260200160405180910390f35b34156101ca57600080fd5b6101ad61033b565b34156101dd57600080fd5b6101ad610341565b34156101f057600080fd5b6101ad610365565b341561020357600080fd5b6101ad610389565b341561021657600080fd5b6101ad6103ad565b341561022957600080fd5b6101ad6103b2565b341561023c57600080fd5b6102446102f8565b604051600160a060020a03909116815260200160405180910390f35b341561026b57600080fd5b6101ad6103b7565b341561027e57600080fd5b6101ad6103db565b341561029157600080fd5b6101ad6103e0565b34156102a457600080fd5b6101ad6103e6565b34156102b757600080fd5b6101ad61040a565b34156102ca57600080fd5b6101ad61042e565b34156102dd57600080fd5b610244610452565b34156102f057600080fd5b6101ad610461565b600254600160a060020a031690565b61031382826000610485565b5050565b7f9065c3e7f7b7ef1ef4e53d2d0b8e0cef02874ab020c1ece79d5f0d3d0111c0ba81565b61271081565b7f3b4bf6bf3ad5000ecf0f989d5befde585c6860fea3e574a4fab4c49d1c177d9c81565b7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb81565b7f2b7d19d0575c228f8d9326801e14149d284dc5bb7b1541c5ad712ae4b2fcaadb81565b600181565b600190565b7fc681a85306374a5ab27f0bbc385296a54bcd314a1948b6cf61c4ea1bc44bb9f881565b600281565b60015481565b7f4b8e03a458a6ccec5d9077c2490964c1333dd3c72e2db408d7d9a7a36ef5c41a81565b7fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a81565b7f93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae81565b600054600160a060020a031681565b7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f81565b6000806000610493866104d9565b151561049e57600080fd5b5061271060008086516020880189855a03f43d93509150838310156104c257600080fd5b604051836000823e8280156104d5578482f35b8482fd5b600080600160a060020a03831615156104f55760009150610500565b823b90506000811191505b50919050565b60008054600160a060020a03166342c71f1d7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a957600080fd5b6102c65a03f115156105ba57600080fd5b505050604051805193925050505600a165627a7a723058202eab0453a4a77f432a5a2f69782ea59ff68fef179836c3250afe44c92413d4da00296060604052341561000f57600080fd5b60405161086838038061086883398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104af1704565b905060008251111561012457610095816401000000006105d36101f382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b50505050505050610220565b60008054600160a060020a03166342c71f1d7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101d357600080fd5b6102c65a03f115156101e457600080fd5b50505060405180519392505050565b600080600160a060020a038316151561020f576000915061021a565b823b90506000811191505b50919050565b6106398061022f6000396000f3006060604052600436106100e55763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630972077881146101a75780630ceafa2a146101cc5780631113ed0d146101df578063178e6079146101f257806325012699146102055780632b2584f6146102185780634555d5c91461022b5780635c60da1b1461023e578063756f60491461027a5780637e84a4ff1461028d57806380afdea8146102a0578063a3b4b07f146102b3578063cbcc65eb146102c6578063cc473be3146102d9578063d4aae0c4146102ec578063db8a61d4146102ff575b60006127105a1015610160576000341180156100ff575036155b151561010a57600080fd5b7f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1333460405173ffffffffffffffffffffffffffffffffffffffff909216825260208201526040908101905180910390a16101a4565b610168610312565b90506101a4816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610324945050505050565b50005b34156101b257600080fd5b6101ba610334565b60405190815260200160405180910390f35b34156101d757600080fd5b6101ba610358565b34156101ea57600080fd5b6101ba61035e565b34156101fd57600080fd5b6101ba610382565b341561021057600080fd5b6101ba6103a6565b341561022357600080fd5b6101ba6103ca565b341561023657600080fd5b6101ba6103cf565b341561024957600080fd5b610251610312565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561028557600080fd5b6101ba6103d4565b341561029857600080fd5b6101ba6103f8565b34156102ab57600080fd5b6101ba6103fd565b34156102be57600080fd5b6101ba610403565b34156102d157600080fd5b6101ba610427565b34156102e457600080fd5b6101ba61044b565b34156102f757600080fd5b61025161046f565b341561030a57600080fd5b6101ba61048b565b600061031f6001546104af565b905090565b6103308282600061057f565b5050565b7f9065c3e7f7b7ef1ef4e53d2d0b8e0cef02874ab020c1ece79d5f0d3d0111c0ba81565b61271081565b7f3b4bf6bf3ad5000ecf0f989d5befde585c6860fea3e574a4fab4c49d1c177d9c81565b7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb81565b7f2b7d19d0575c228f8d9326801e14149d284dc5bb7b1541c5ad712ae4b2fcaadb81565b600181565b600290565b7fc681a85306374a5ab27f0bbc385296a54bcd314a1948b6cf61c4ea1bc44bb9f881565b600281565b60015481565b7f4b8e03a458a6ccec5d9077c2490964c1333dd3c72e2db408d7d9a7a36ef5c41a81565b7fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a81565b7f93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae81565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f81565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055f57600080fd5b6102c65a03f1151561057057600080fd5b50505060405180519392505050565b600080600061058d866105d3565b151561059857600080fd5b5061271060008086516020880189855a03f43d93509150838310156105bc57600080fd5b604051836000823e8280156105cf578482f35b8482fd5b60008073ffffffffffffffffffffffffffffffffffffffff831615156105fc5760009150610607565b823b90506000811191505b509190505600a165627a7a72305820d0cd8cb891027e727a3a5e23391e7accbccc4ac28afa8d6178613fa9206fd58a00296c70702d63616d706169676e0000000000000000000000000000000000000000a165627a7a723058208c64f3aa1bfdb398adc7f3e4be356f8336ea5795c93b760f1e6727a56949fee30029",
"sourceMap": "341:2087:1:-;;;;;;;;;-1:-1:-1;;;341:2087:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1020:101:24;;;;;;;;;;;;;;;;;;;;;;;;;;;1127:106;;;;;;;;;;;;796:111;;;;;;;;;;;;1239:103;;;;;;;;;;;;192:63:29;;;;;;;;;;;;2319:107:1;;;;;;;;;;;;;;;-1:-1:-1;;;;;2319:107:1;;;;;;;;;;;;;;452:67;;;;;;;;;;;;1109:685;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1109:685:1;;-1:-1:-1;;;1109:685:1;;;;;;;;-1:-1:-1;;;;;1109:685:1;;-1:-1:-1;1109:685:1;;-1:-1:-1;;1109:685:1;;;565:107:24;;;;;;;;;;;;1090:99:16;;;;;;;;;;-1:-1:-1;;;;;1090:99:16;;;;;;;;;;;;;;;;;;;;;;185:40:12;;;;;;;;;;;;617:82:1;;;;;;;;;;;;497:393:16;;;;;;;;;;-1:-1:-1;;;;;497:393:16;;;;;1457:100:24;;;;;;;;;;;;525:86:1;;;;;;;;;;;;1348:103:24;;;;;;;;;;;;913:101;;;;;;;;;;;;845:287:21;;;;;;;;;;;;;-1:-1:-1;;;;;845:287:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;845:287:21;;-1:-1:-1;845:287:21;;-1:-1:-1;;;;;;845:287:21;129:57:29;;;;;;;;;;;;425:20:1;;;;;;;;;;;;678:112:24;;;;;;;;;;;;211:157:21;;;;;;;;;;-1:-1:-1;;;;;211:157:21;;;;;;;374:295;;;;;;;;;;;;;-1:-1:-1;;;;;374:295:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;374:295:21;;-1:-1:-1;374:295:21;;-1:-1:-1;;;;;;374:295:21;675:164;;;;;;;;;;-1:-1:-1;;;;;675:164:21;;;;;;;1020:101:24;1055:66;1020:101;:::o;1127:106::-;1167:66;1127:106;:::o;796:111::-;841:66;796:111;:::o;1239:103::-;1276:66;1239:103;:::o;192:63:29:-;228:27;;;;;;;;;;;;;;192:63;:::o;2319:107:1:-;2368:7;2394:6;;-1:-1:-1;;;;;2394:6:1;:23;2368:7;2394:25;;;;;;;;;;-1:-1:-1;;;2394:25:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2319:107:1;:::o;452:67::-;494:25;;-1:-1:-1;;;;;;;;;;;494:25:1;;;;;;;;;;;452:67;:::o;1109:685::-;1254:20;1277:6;;1254:20;;;;-1:-1:-1;;;;;1277:6:1;:13;724:66:24;494:25:1;;-1:-1:-1;;;;;;;;;;;494:25:1;;;;;;;;;;;564:47;;;;;;;;;;;;;;;;;;;;1277:27;;;;;;;;-1:-1:-1;;;1277:27:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1322:17:1;;;;1314:26;;;;;;1375:6;;-1:-1:-1;;;;;1375:6:1;:13;841:66:24;228:27:29;;;;;;;;;;;;;;659:40:1;;;;;;;;;;;;;;;;;;;;1375:30;;;;;;;;-1:-1:-1;;;1375:30:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1423:19:1;;;;1415:28;;;;;;1501:6;;1489:36;;-1:-1:-1;;;;;1501:6:1;494:25;;-1:-1:-1;;;;;;;;;;;494:25:1;;;;;;;;;;;1489:11;:36::i;:::-;1454:72;;1552:14;-1:-1:-1;;;;;1537:53:1;;1599:8;1537:72;;-1:-1:-1;;;1537:72:1;;;;;;-1:-1:-1;;;;;1537:72:1;;;;;;;;;-1:-1:-1;1537:72:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1620:8;-1:-1:-1;;;;;1620:19:1;;1640:14;1656:4;1662:3;1667:13;1682:8;1620:71;;-1:-1:-1;;;1620:71:1;;;;;;-1:-1:-1;;;;;1620:71:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1702:41:1;1718:8;1728:14;1702:15;:41::i;:::-;1754:33;1777:8;1754:33;;-1:-1:-1;;;;;1754:33:1;;;;;;;;;;;;;;1109:685;;;;;;;:::o