From 7f6330bb4a91fd13fea058d07637961e0f6a19ef Mon Sep 17 00:00:00 2001 From: Phil Elsasser Date: Fri, 7 Sep 2018 11:43:51 -0600 Subject: [PATCH 1/4] add new abis from recent deploy to reset registry --- .../MarketCollateralPoolFactory.json | 30 +- .../MarketContractFactoryOraclize.json | 67 +- build/contracts/MarketContractOraclize.json | 33 +- build/contracts/MarketContractRegistry.json | 20 +- build/contracts/MarketToken.json | 20 +- build/contracts/MathLib.json | 16 +- build/contracts/Migrations.json | 834 +++++++++--------- build/contracts/OrderLib.json | 20 +- 8 files changed, 506 insertions(+), 534 deletions(-) diff --git a/build/contracts/MarketCollateralPoolFactory.json b/build/contracts/MarketCollateralPoolFactory.json index 845ae13..8505112 100644 --- a/build/contracts/MarketCollateralPoolFactory.json +++ b/build/contracts/MarketCollateralPoolFactory.json @@ -100,14 +100,14 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50604051602080612ac183398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129fd806100c46000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636a8da881146100725780638da5cb5b146100b5578063ab7b49931461010c578063ceaaa9151461014f578063f2fde38b146101a6575b600080fd5b34801561007e57600080fd5b506100b3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101e9565b005b3480156100c157600080fd5b506100ca610403565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561011857600080fd5b5061014d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610428565b005b34801561015b57600080fd5b50610164610503565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101b257600080fd5b506101e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610529565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad23de63836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156102a857600080fd5b505af11580156102bc573d6000803e3d6000fd5b505050506040513d60208110156102d257600080fd5b810190808051906020019092919050505015156102ee57600080fd5b816102f761067e565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015610349573d6000803e3d6000fd5b5090508173ffffffffffffffffffffffffffffffffffffffff1663c201293b826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156103e757600080fd5b505af11580156103fb573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561048357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156104bf57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561058457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156105c057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040516123438061068f833901905600608060405234801561001057600080fd5b506040516020806123438339810180604052810190808051906020019092919050505080600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561007057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663798ddbc86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561017857600080fd5b505af115801561018c573d6000803e3d6000fd5b505050506040513d60208110156101a257600080fd5b8101908080519060200190929190505050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612140806102036000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631c88ef1e146100bf578063315a095d1461012757806331e8a7ef146101545780633bc6db30146101ab5780633f7f4f17146101c257806345aff2fa14610219578063798ddbc8146102705780637bb55cd2146102c75780638af6375f1461031e578063a68e5ad014610349578063aafff7e114610376578063eeaba083146103cd575b600080fd5b3480156100cb57600080fd5b5061010a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610444565b604051808381526020018281526020019250505060405180910390f35b34801561013357600080fd5b50610152600480360381019080803590602001909291905050506104be565b005b34801561016057600080fd5b50610195600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610695565b6040518082815260200191505060405180910390f35b3480156101b757600080fd5b506101c06106e4565b005b3480156101ce57600080fd5b50610203600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a98565b6040518082815260200191505060405180910390f35b34801561022557600080fd5b5061025a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae1565b6040518082815260200191505060405180910390f35b34801561027c57600080fd5b50610285610b2d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d357600080fd5b506102dc610b53565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032a57600080fd5b50610333610b78565b6040518082815260200191505060405180910390f35b34801561035557600080fd5b5061037460048036038101908080359060200190929190505050610b7e565b005b34801561038257600080fd5b506103b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eb0565b6040518082815260200191505060405180910390f35b3480156103d957600080fd5b50610442600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610ec8565b005b6000806000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110151561049857fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600061051282600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106433383600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b505050506040513d602081101561060d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16610f7a9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633270bb5b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561076c57600080fd5b505af1158015610780573d6000803e3d6000fd5b505050506040513d602081101561079657600080fd5b810190808051906020019092919050505015156107b257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d60208110156108ef57600080fd5b8101908080519060200190929190505050151561090b57600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010154141515610a4d57610a4c81337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff846001015402600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f348e8b26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a0c57600080fd5b505af1158015610a20573d6000803e3d6000fd5b505050506040513d6020811015610a3657600080fd5b8101908080519060200190929190505050611065565b5b610a95600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104be565b50565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050506040513d6020811015610cbd57600080fd5b81019080805190602001909291905050501515610cd957600080fd5b610d2b82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b9050610e1a333084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610db957600080fd5b505af1158015610dcd573d6000803e3d6000fd5b505050506040513d6020811015610de357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166117cc909392919063ffffffff16565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b60036020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2357600080fd5b610f2e8483836118ec565b610f5b837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8402836118ec565b50505050565b6000828211151515610f6f57fe5b818303905092915050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561101d57600080fd5b505af1158015611031573d6000803e3d6000fd5b505050506040513d602081101561104757600080fd5b8101908080519060200190929190505050151561106057fe5b505050565b6000806000809250849150600087600001805490501415151561108457fe5b5b600082141515611790578660000160018860000180549050038154811015156110aa57fe5b906000526020600020906002020190506110c382611a1b565b6110d08260010154611a1b565b11151561142b576113f373__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561117a57600080fd5b505af115801561118e573d6000803e3d6000fd5b505050506040513d60208110156111a457600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050506040513d602081101561126557600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156112fc57600080fd5b505af1158015611310573d6000803e3d6000fd5b505050506040513d602081101561132657600080fd5b810190808051906020019092919050505086600101548a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b1580156113a957600080fd5b505af41580156113bd573d6000803e3d6000fd5b505050506040513d60208110156113d357600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b925061140c816001015483611a3990919063ffffffff16565b91508660000180548091906001900361142591906120b3565b5061178b565b611442828260010154611a3990919063ffffffff16565b816001018190555061178473__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050506040513d602081101561151757600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156115ae57600080fd5b505af11580156115c2573d6000803e3d6000fd5b505050506040513d60208110156115d857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561166f57600080fd5b505af1158015611683573d6000803e3d6000fd5b505050506040513d602081101561169957600080fd5b81019080805190602001909291905050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88028a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b15801561173a57600080fd5b505af415801561174e573d6000803e3d6000fd5b505050506040513d602081101561176457600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b9250611790565b611085565b6000831415156117a5576117a48684611aa1565b5b50505050505050565b60008082840190508381101515156117c257fe5b8091505092915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156118a357600080fd5b505af11580156118b7573d6000803e3d6000fd5b505050506040513d60208110156118cd57600080fd5b810190808051906020019092919050505015156118e657fe5b50505050565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506000826001015414806119565750611955848360010154611be290919063ffffffff16565b5b1561196c5761196782868686611bfc565b6119f5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840282600101541215156119ac576119a782868686611065565b6119f4565b6119de82867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85600101540286611065565b8382600101540190506119f382868386611bfc565b5b5b611a0c848360010154611a3990919063ffffffff16565b82600101819055505050505050565b600080821215611a3057816000039050611a34565b8190505b919050565b6000808284019050611a4b8484611be2565b1515611a5957809150611a9a565b600084121515611a7f578360ff60019060020a0219038313151515611a7a57fe5b611a96565b8360ff60019060020a02038312151515611a9557fe5b5b8091505b5092915050565b6000611af582600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b5082600154610f6190919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b600081831480611bf457506000828402135b905092915050565b600073__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611c9e57600080fd5b505af1158015611cb2573d6000803e3d6000fd5b505050506040513d6020811015611cc857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611d5f57600080fd5b505af1158015611d73573d6000803e3d6000fd5b505050506040513d6020811015611d8957600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611e2057600080fd5b505af1158015611e34573d6000803e3d6000fd5b505050506040513d6020811015611e4a57600080fd5b810190808051906020019092919050505087876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b158015611ec957600080fd5b505af4158015611edd573d6000803e3d6000fd5b505050506040513d6020811015611ef357600080fd5b81019080805190602001909291905050509050611f108482611f72565b846000016040805190810160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050505050505050565b6000611fc682600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612021826001546117ae90919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b8154818355818111156120e0576002028160020283600052602060002091820191016120df91906120e5565b5b505050565b61211191905b8082111561210d576000808201600090556001820160009055506002016120eb565b5090565b905600a165627a7a72305820b34f6441b257fc1f2777042571cb9bed4da55f2842186e1786cb5e9bfde8ced50029a165627a7a723058202d2d999cbc73e18be378a52a6e474db701065902a63a790f5e1b5429c2d48aaa0029", - "deployedBytecode": "0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636a8da881146100725780638da5cb5b146100b5578063ab7b49931461010c578063ceaaa9151461014f578063f2fde38b146101a6575b600080fd5b34801561007e57600080fd5b506100b3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101e9565b005b3480156100c157600080fd5b506100ca610403565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561011857600080fd5b5061014d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610428565b005b34801561015b57600080fd5b50610164610503565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101b257600080fd5b506101e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610529565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad23de63836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156102a857600080fd5b505af11580156102bc573d6000803e3d6000fd5b505050506040513d60208110156102d257600080fd5b810190808051906020019092919050505015156102ee57600080fd5b816102f761067e565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015610349573d6000803e3d6000fd5b5090508173ffffffffffffffffffffffffffffffffffffffff1663c201293b826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156103e757600080fd5b505af11580156103fb573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561048357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156104bf57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561058457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156105c057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040516123438061068f833901905600608060405234801561001057600080fd5b506040516020806123438339810180604052810190808051906020019092919050505080600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561007057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663798ddbc86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561017857600080fd5b505af115801561018c573d6000803e3d6000fd5b505050506040513d60208110156101a257600080fd5b8101908080519060200190929190505050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612140806102036000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631c88ef1e146100bf578063315a095d1461012757806331e8a7ef146101545780633bc6db30146101ab5780633f7f4f17146101c257806345aff2fa14610219578063798ddbc8146102705780637bb55cd2146102c75780638af6375f1461031e578063a68e5ad014610349578063aafff7e114610376578063eeaba083146103cd575b600080fd5b3480156100cb57600080fd5b5061010a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610444565b604051808381526020018281526020019250505060405180910390f35b34801561013357600080fd5b50610152600480360381019080803590602001909291905050506104be565b005b34801561016057600080fd5b50610195600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610695565b6040518082815260200191505060405180910390f35b3480156101b757600080fd5b506101c06106e4565b005b3480156101ce57600080fd5b50610203600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a98565b6040518082815260200191505060405180910390f35b34801561022557600080fd5b5061025a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae1565b6040518082815260200191505060405180910390f35b34801561027c57600080fd5b50610285610b2d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d357600080fd5b506102dc610b53565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032a57600080fd5b50610333610b78565b6040518082815260200191505060405180910390f35b34801561035557600080fd5b5061037460048036038101908080359060200190929190505050610b7e565b005b34801561038257600080fd5b506103b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eb0565b6040518082815260200191505060405180910390f35b3480156103d957600080fd5b50610442600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610ec8565b005b6000806000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110151561049857fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600061051282600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106433383600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b505050506040513d602081101561060d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16610f7a9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633270bb5b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561076c57600080fd5b505af1158015610780573d6000803e3d6000fd5b505050506040513d602081101561079657600080fd5b810190808051906020019092919050505015156107b257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d60208110156108ef57600080fd5b8101908080519060200190929190505050151561090b57600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010154141515610a4d57610a4c81337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff846001015402600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f348e8b26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a0c57600080fd5b505af1158015610a20573d6000803e3d6000fd5b505050506040513d6020811015610a3657600080fd5b8101908080519060200190929190505050611065565b5b610a95600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104be565b50565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050506040513d6020811015610cbd57600080fd5b81019080805190602001909291905050501515610cd957600080fd5b610d2b82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b9050610e1a333084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610db957600080fd5b505af1158015610dcd573d6000803e3d6000fd5b505050506040513d6020811015610de357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166117cc909392919063ffffffff16565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b60036020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2357600080fd5b610f2e8483836118ec565b610f5b837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8402836118ec565b50505050565b6000828211151515610f6f57fe5b818303905092915050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561101d57600080fd5b505af1158015611031573d6000803e3d6000fd5b505050506040513d602081101561104757600080fd5b8101908080519060200190929190505050151561106057fe5b505050565b6000806000809250849150600087600001805490501415151561108457fe5b5b600082141515611790578660000160018860000180549050038154811015156110aa57fe5b906000526020600020906002020190506110c382611a1b565b6110d08260010154611a1b565b11151561142b576113f373__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561117a57600080fd5b505af115801561118e573d6000803e3d6000fd5b505050506040513d60208110156111a457600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050506040513d602081101561126557600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156112fc57600080fd5b505af1158015611310573d6000803e3d6000fd5b505050506040513d602081101561132657600080fd5b810190808051906020019092919050505086600101548a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b1580156113a957600080fd5b505af41580156113bd573d6000803e3d6000fd5b505050506040513d60208110156113d357600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b925061140c816001015483611a3990919063ffffffff16565b91508660000180548091906001900361142591906120b3565b5061178b565b611442828260010154611a3990919063ffffffff16565b816001018190555061178473__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050506040513d602081101561151757600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156115ae57600080fd5b505af11580156115c2573d6000803e3d6000fd5b505050506040513d60208110156115d857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561166f57600080fd5b505af1158015611683573d6000803e3d6000fd5b505050506040513d602081101561169957600080fd5b81019080805190602001909291905050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88028a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b15801561173a57600080fd5b505af415801561174e573d6000803e3d6000fd5b505050506040513d602081101561176457600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b9250611790565b611085565b6000831415156117a5576117a48684611aa1565b5b50505050505050565b60008082840190508381101515156117c257fe5b8091505092915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156118a357600080fd5b505af11580156118b7573d6000803e3d6000fd5b505050506040513d60208110156118cd57600080fd5b810190808051906020019092919050505015156118e657fe5b50505050565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506000826001015414806119565750611955848360010154611be290919063ffffffff16565b5b1561196c5761196782868686611bfc565b6119f5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840282600101541215156119ac576119a782868686611065565b6119f4565b6119de82867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85600101540286611065565b8382600101540190506119f382868386611bfc565b5b5b611a0c848360010154611a3990919063ffffffff16565b82600101819055505050505050565b600080821215611a3057816000039050611a34565b8190505b919050565b6000808284019050611a4b8484611be2565b1515611a5957809150611a9a565b600084121515611a7f578360ff60019060020a0219038313151515611a7a57fe5b611a96565b8360ff60019060020a02038312151515611a9557fe5b5b8091505b5092915050565b6000611af582600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b5082600154610f6190919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b600081831480611bf457506000828402135b905092915050565b600073__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611c9e57600080fd5b505af1158015611cb2573d6000803e3d6000fd5b505050506040513d6020811015611cc857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611d5f57600080fd5b505af1158015611d73573d6000803e3d6000fd5b505050506040513d6020811015611d8957600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611e2057600080fd5b505af1158015611e34573d6000803e3d6000fd5b505050506040513d6020811015611e4a57600080fd5b810190808051906020019092919050505087876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b158015611ec957600080fd5b505af4158015611edd573d6000803e3d6000fd5b505050506040513d6020811015611ef357600080fd5b81019080805190602001909291905050509050611f108482611f72565b846000016040805190810160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050505050505050565b6000611fc682600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612021826001546117ae90919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b8154818355818111156120e0576002028160020283600052602060002091820191016120df91906120e5565b5b505050565b61211191905b8082111561210d576000808201600090556001820160009055506002016120eb565b5090565b905600a165627a7a72305820b34f6441b257fc1f2777042571cb9bed4da55f2842186e1786cb5e9bfde8ced50029a165627a7a723058202d2d999cbc73e18be378a52a6e474db701065902a63a790f5e1b5429c2d48aaa0029", + "bytecode": "0x608060405234801561001057600080fd5b50604051602080612ac183398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129fd806100c46000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636a8da881146100725780638da5cb5b146100b5578063ab7b49931461010c578063ceaaa9151461014f578063f2fde38b146101a6575b600080fd5b34801561007e57600080fd5b506100b3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101e9565b005b3480156100c157600080fd5b506100ca610403565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561011857600080fd5b5061014d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610428565b005b34801561015b57600080fd5b50610164610503565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101b257600080fd5b506101e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610529565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad23de63836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156102a857600080fd5b505af11580156102bc573d6000803e3d6000fd5b505050506040513d60208110156102d257600080fd5b810190808051906020019092919050505015156102ee57600080fd5b816102f761067e565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015610349573d6000803e3d6000fd5b5090508173ffffffffffffffffffffffffffffffffffffffff1663c201293b826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156103e757600080fd5b505af11580156103fb573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561048357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156104bf57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561058457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156105c057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040516123438061068f833901905600608060405234801561001057600080fd5b506040516020806123438339810180604052810190808051906020019092919050505080600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561007057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663798ddbc86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561017857600080fd5b505af115801561018c573d6000803e3d6000fd5b505050506040513d60208110156101a257600080fd5b8101908080519060200190929190505050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612140806102036000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631c88ef1e146100bf578063315a095d1461012757806331e8a7ef146101545780633bc6db30146101ab5780633f7f4f17146101c257806345aff2fa14610219578063798ddbc8146102705780637bb55cd2146102c75780638af6375f1461031e578063a68e5ad014610349578063aafff7e114610376578063eeaba083146103cd575b600080fd5b3480156100cb57600080fd5b5061010a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610444565b604051808381526020018281526020019250505060405180910390f35b34801561013357600080fd5b50610152600480360381019080803590602001909291905050506104be565b005b34801561016057600080fd5b50610195600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610695565b6040518082815260200191505060405180910390f35b3480156101b757600080fd5b506101c06106e4565b005b3480156101ce57600080fd5b50610203600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a98565b6040518082815260200191505060405180910390f35b34801561022557600080fd5b5061025a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae1565b6040518082815260200191505060405180910390f35b34801561027c57600080fd5b50610285610b2d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d357600080fd5b506102dc610b53565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032a57600080fd5b50610333610b78565b6040518082815260200191505060405180910390f35b34801561035557600080fd5b5061037460048036038101908080359060200190929190505050610b7e565b005b34801561038257600080fd5b506103b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eb0565b6040518082815260200191505060405180910390f35b3480156103d957600080fd5b50610442600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610ec8565b005b6000806000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110151561049857fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600061051282600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106433383600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b505050506040513d602081101561060d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16610f7a9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633270bb5b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561076c57600080fd5b505af1158015610780573d6000803e3d6000fd5b505050506040513d602081101561079657600080fd5b810190808051906020019092919050505015156107b257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d60208110156108ef57600080fd5b8101908080519060200190929190505050151561090b57600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010154141515610a4d57610a4c81337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff846001015402600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f348e8b26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a0c57600080fd5b505af1158015610a20573d6000803e3d6000fd5b505050506040513d6020811015610a3657600080fd5b8101908080519060200190929190505050611065565b5b610a95600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104be565b50565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050506040513d6020811015610cbd57600080fd5b81019080805190602001909291905050501515610cd957600080fd5b610d2b82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b9050610e1a333084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610db957600080fd5b505af1158015610dcd573d6000803e3d6000fd5b505050506040513d6020811015610de357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166117cc909392919063ffffffff16565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b60036020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2357600080fd5b610f2e8483836118ec565b610f5b837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8402836118ec565b50505050565b6000828211151515610f6f57fe5b818303905092915050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561101d57600080fd5b505af1158015611031573d6000803e3d6000fd5b505050506040513d602081101561104757600080fd5b8101908080519060200190929190505050151561106057fe5b505050565b6000806000809250849150600087600001805490501415151561108457fe5b5b600082141515611790578660000160018860000180549050038154811015156110aa57fe5b906000526020600020906002020190506110c382611a1b565b6110d08260010154611a1b565b11151561142b576113f373__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561117a57600080fd5b505af115801561118e573d6000803e3d6000fd5b505050506040513d60208110156111a457600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050506040513d602081101561126557600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156112fc57600080fd5b505af1158015611310573d6000803e3d6000fd5b505050506040513d602081101561132657600080fd5b810190808051906020019092919050505086600101548a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b1580156113a957600080fd5b505af41580156113bd573d6000803e3d6000fd5b505050506040513d60208110156113d357600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b925061140c816001015483611a3990919063ffffffff16565b91508660000180548091906001900361142591906120b3565b5061178b565b611442828260010154611a3990919063ffffffff16565b816001018190555061178473__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050506040513d602081101561151757600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156115ae57600080fd5b505af11580156115c2573d6000803e3d6000fd5b505050506040513d60208110156115d857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561166f57600080fd5b505af1158015611683573d6000803e3d6000fd5b505050506040513d602081101561169957600080fd5b81019080805190602001909291905050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88028a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b15801561173a57600080fd5b505af415801561174e573d6000803e3d6000fd5b505050506040513d602081101561176457600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b9250611790565b611085565b6000831415156117a5576117a48684611aa1565b5b50505050505050565b60008082840190508381101515156117c257fe5b8091505092915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156118a357600080fd5b505af11580156118b7573d6000803e3d6000fd5b505050506040513d60208110156118cd57600080fd5b810190808051906020019092919050505015156118e657fe5b50505050565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506000826001015414806119565750611955848360010154611be290919063ffffffff16565b5b1561196c5761196782868686611bfc565b6119f5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840282600101541215156119ac576119a782868686611065565b6119f4565b6119de82867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85600101540286611065565b8382600101540190506119f382868386611bfc565b5b5b611a0c848360010154611a3990919063ffffffff16565b82600101819055505050505050565b600080821215611a3057816000039050611a34565b8190505b919050565b6000808284019050611a4b8484611be2565b1515611a5957809150611a9a565b600084121515611a7f578360ff60019060020a0219038313151515611a7a57fe5b611a96565b8360ff60019060020a02038312151515611a9557fe5b5b8091505b5092915050565b6000611af582600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b5082600154610f6190919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b600081831480611bf457506000828402135b905092915050565b600073__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611c9e57600080fd5b505af1158015611cb2573d6000803e3d6000fd5b505050506040513d6020811015611cc857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611d5f57600080fd5b505af1158015611d73573d6000803e3d6000fd5b505050506040513d6020811015611d8957600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611e2057600080fd5b505af1158015611e34573d6000803e3d6000fd5b505050506040513d6020811015611e4a57600080fd5b810190808051906020019092919050505087876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b158015611ec957600080fd5b505af4158015611edd573d6000803e3d6000fd5b505050506040513d6020811015611ef357600080fd5b81019080805190602001909291905050509050611f108482611f72565b846000016040805190810160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050505050505050565b6000611fc682600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612021826001546117ae90919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b8154818355818111156120e0576002028160020283600052602060002091820191016120df91906120e5565b5b505050565b61211191905b8082111561210d576000808201600090556001820160009055506002016120eb565b5090565b905600a165627a7a72305820b781e2fce2708f6dd40ade78d8837808fe004daf0983e8ce24906bcbd146ee320029a165627a7a72305820e22539e7d71cb24106176950b834fae25398b1ebe7edfb9e7c1d104464390b0a0029", + "deployedBytecode": "0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636a8da881146100725780638da5cb5b146100b5578063ab7b49931461010c578063ceaaa9151461014f578063f2fde38b146101a6575b600080fd5b34801561007e57600080fd5b506100b3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101e9565b005b3480156100c157600080fd5b506100ca610403565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561011857600080fd5b5061014d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610428565b005b34801561015b57600080fd5b50610164610503565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101b257600080fd5b506101e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610529565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad23de63836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156102a857600080fd5b505af11580156102bc573d6000803e3d6000fd5b505050506040513d60208110156102d257600080fd5b810190808051906020019092919050505015156102ee57600080fd5b816102f761067e565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015610349573d6000803e3d6000fd5b5090508173ffffffffffffffffffffffffffffffffffffffff1663c201293b826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156103e757600080fd5b505af11580156103fb573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561048357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156104bf57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561058457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156105c057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040516123438061068f833901905600608060405234801561001057600080fd5b506040516020806123438339810180604052810190808051906020019092919050505080600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561007057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663798ddbc86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561017857600080fd5b505af115801561018c573d6000803e3d6000fd5b505050506040513d60208110156101a257600080fd5b8101908080519060200190929190505050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612140806102036000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631c88ef1e146100bf578063315a095d1461012757806331e8a7ef146101545780633bc6db30146101ab5780633f7f4f17146101c257806345aff2fa14610219578063798ddbc8146102705780637bb55cd2146102c75780638af6375f1461031e578063a68e5ad014610349578063aafff7e114610376578063eeaba083146103cd575b600080fd5b3480156100cb57600080fd5b5061010a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610444565b604051808381526020018281526020019250505060405180910390f35b34801561013357600080fd5b50610152600480360381019080803590602001909291905050506104be565b005b34801561016057600080fd5b50610195600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610695565b6040518082815260200191505060405180910390f35b3480156101b757600080fd5b506101c06106e4565b005b3480156101ce57600080fd5b50610203600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a98565b6040518082815260200191505060405180910390f35b34801561022557600080fd5b5061025a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae1565b6040518082815260200191505060405180910390f35b34801561027c57600080fd5b50610285610b2d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d357600080fd5b506102dc610b53565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032a57600080fd5b50610333610b78565b6040518082815260200191505060405180910390f35b34801561035557600080fd5b5061037460048036038101908080359060200190929190505050610b7e565b005b34801561038257600080fd5b506103b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eb0565b6040518082815260200191505060405180910390f35b3480156103d957600080fd5b50610442600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610ec8565b005b6000806000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110151561049857fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600061051282600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106433383600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b505050506040513d602081101561060d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16610f7a9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633270bb5b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561076c57600080fd5b505af1158015610780573d6000803e3d6000fd5b505050506040513d602081101561079657600080fd5b810190808051906020019092919050505015156107b257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d60208110156108ef57600080fd5b8101908080519060200190929190505050151561090b57600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010154141515610a4d57610a4c81337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff846001015402600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f348e8b26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a0c57600080fd5b505af1158015610a20573d6000803e3d6000fd5b505050506040513d6020811015610a3657600080fd5b8101908080519060200190929190505050611065565b5b610a95600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104be565b50565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050506040513d6020811015610cbd57600080fd5b81019080805190602001909291905050501515610cd957600080fd5b610d2b82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b9050610e1a333084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610db957600080fd5b505af1158015610dcd573d6000803e3d6000fd5b505050506040513d6020811015610de357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166117cc909392919063ffffffff16565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b60036020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2357600080fd5b610f2e8483836118ec565b610f5b837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8402836118ec565b50505050565b6000828211151515610f6f57fe5b818303905092915050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561101d57600080fd5b505af1158015611031573d6000803e3d6000fd5b505050506040513d602081101561104757600080fd5b8101908080519060200190929190505050151561106057fe5b505050565b6000806000809250849150600087600001805490501415151561108457fe5b5b600082141515611790578660000160018860000180549050038154811015156110aa57fe5b906000526020600020906002020190506110c382611a1b565b6110d08260010154611a1b565b11151561142b576113f373__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561117a57600080fd5b505af115801561118e573d6000803e3d6000fd5b505050506040513d60208110156111a457600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050506040513d602081101561126557600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156112fc57600080fd5b505af1158015611310573d6000803e3d6000fd5b505050506040513d602081101561132657600080fd5b810190808051906020019092919050505086600101548a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b1580156113a957600080fd5b505af41580156113bd573d6000803e3d6000fd5b505050506040513d60208110156113d357600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b925061140c816001015483611a3990919063ffffffff16565b91508660000180548091906001900361142591906120b3565b5061178b565b611442828260010154611a3990919063ffffffff16565b816001018190555061178473__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050506040513d602081101561151757600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156115ae57600080fd5b505af11580156115c2573d6000803e3d6000fd5b505050506040513d60208110156115d857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561166f57600080fd5b505af1158015611683573d6000803e3d6000fd5b505050506040513d602081101561169957600080fd5b81019080805190602001909291905050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88028a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b15801561173a57600080fd5b505af415801561174e573d6000803e3d6000fd5b505050506040513d602081101561176457600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b9250611790565b611085565b6000831415156117a5576117a48684611aa1565b5b50505050505050565b60008082840190508381101515156117c257fe5b8091505092915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156118a357600080fd5b505af11580156118b7573d6000803e3d6000fd5b505050506040513d60208110156118cd57600080fd5b810190808051906020019092919050505015156118e657fe5b50505050565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506000826001015414806119565750611955848360010154611be290919063ffffffff16565b5b1561196c5761196782868686611bfc565b6119f5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840282600101541215156119ac576119a782868686611065565b6119f4565b6119de82867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85600101540286611065565b8382600101540190506119f382868386611bfc565b5b5b611a0c848360010154611a3990919063ffffffff16565b82600101819055505050505050565b600080821215611a3057816000039050611a34565b8190505b919050565b6000808284019050611a4b8484611be2565b1515611a5957809150611a9a565b600084121515611a7f578360ff60019060020a0219038313151515611a7a57fe5b611a96565b8360ff60019060020a02038312151515611a9557fe5b5b8091505b5092915050565b6000611af582600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b5082600154610f6190919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b600081831480611bf457506000828402135b905092915050565b600073__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611c9e57600080fd5b505af1158015611cb2573d6000803e3d6000fd5b505050506040513d6020811015611cc857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611d5f57600080fd5b505af1158015611d73573d6000803e3d6000fd5b505050506040513d6020811015611d8957600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611e2057600080fd5b505af1158015611e34573d6000803e3d6000fd5b505050506040513d6020811015611e4a57600080fd5b810190808051906020019092919050505087876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b158015611ec957600080fd5b505af4158015611edd573d6000803e3d6000fd5b505050506040513d6020811015611ef357600080fd5b81019080805190602001909291905050509050611f108482611f72565b846000016040805190810160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050505050505050565b6000611fc682600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612021826001546117ae90919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b8154818355818111156120e0576002028160020283600052602060002091820191016120df91906120e5565b5b505050565b61211191905b8082111561210d576000808201600090556001820160009055506002016120eb565b5090565b905600a165627a7a72305820b781e2fce2708f6dd40ade78d8837808fe004daf0983e8ce24906bcbd146ee320029a165627a7a72305820e22539e7d71cb24106176950b834fae25398b1ebe7edfb9e7c1d104464390b0a0029", "sourceMap": "840:1307:7:-;;;1139:102;8:9:-1;5:2;;;30:1;27;20:12;5:2;1139:102:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;509:10:25;501:5;;:18;;;;;;;;;;;;;;;;;;1218:15:7;1193:22;;:40;;;;;;;;;;;;;;;;;;1139:102;840:1307;;;;;;", "deployedSourceMap": "840:1307:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1416:404;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1416:404:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;1968:177:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1968:177:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;933:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;933:37:7;;;;;;;;;;;;;;;;;;;;;;;;;;;832:174:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;832:174:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;1416:404:7;1620:41;1542:22;;;;;;;;;;;1510:76;;;1587:21;1510:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1510:99:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1510:99:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1510:99:7;;;;;;;;;;;;;;;;1502:108;;;;;;;;1689:21;1664:47;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1664:47:7;1620:91;;1736:21;1721:70;;;1792:20;1721:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1721:92:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1721:92:7;;;;1416:404;;:::o;238:20:25:-;;;;;;;;;;;;;:::o;1968:177:7:-;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;2085:1:7;2058:29;;:15;:29;;;;2050:38;;;;;;;;2123:15;2098:22;;:40;;;;;;;;;;;;;;;;;;1968:177;:::o;933:37::-;;;;;;;;;;;;;:::o;832:174:25:-;653:5;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;928:1;908:22;;:8;:22;;;;900:31;;;;;;;;970:8;942:37;;963:5;;;;;;;;;;;942:37;;;;;;;;;;;;993:8;985:5;;:16;;;;;;;;;;;;;;;;;;832:174;:::o;840:1307:7:-;;;;;;;;;;:::o", "source": "/*\n Copyright 2017-2018 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity ^0.4.24;\n\nimport \"../MarketCollateralPool.sol\";\nimport \"./MarketCollateralPoolFactoryInterface.sol\";\nimport \"../MarketContractRegistryInterface.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n\ncontract MarketCollateralPoolFactory is Ownable, MarketCollateralPoolFactoryInterface {\n\n address public marketContractRegistry;\n\n /// @dev deploys our factory and ties it the a supply registry address\n /// @param registryAddress - MarketContractRegistry address to whitelist contracts\n constructor(address registryAddress) public {\n marketContractRegistry = registryAddress;\n\n }\n\n /// @dev creates the needed collateral pool and links it to our market contract.\n /// @param marketContractAddress address of the newly deployed market contract.\n function deployMarketCollateralPool(address marketContractAddress) external {\n require(MarketContractRegistryInterface(marketContractRegistry).isAddressWhiteListed(marketContractAddress));\n MarketCollateralPool marketCollateralPool = new MarketCollateralPool(marketContractAddress);\n MarketContract(marketContractAddress).setCollateralPoolContractAddress(marketCollateralPool);\n }\n\n /// @dev allows for the owner to set the desired registry for contract creation.\n /// @param registryAddress desired registry address.\n function setRegistryAddress(address registryAddress) external onlyOwner {\n require(registryAddress != address(0));\n marketContractRegistry = registryAddress;\n }\n}\n", - "sourcePath": "/home/pelsasser/MARKETProtocol/contracts/factories/MarketCollateralPoolFactory.sol", + "sourcePath": "/home/parallels/MARKETProtocol/contracts/factories/MarketCollateralPoolFactory.sol", "ast": { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/factories/MarketCollateralPoolFactory.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/factories/MarketCollateralPoolFactory.sol", "exportedSymbols": { "MarketCollateralPoolFactory": [ 1861 @@ -128,7 +128,7 @@ "src": "608:24:7" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketCollateralPool.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketCollateralPool.sol", "file": "../MarketCollateralPool.sol", "id": 1792, "nodeType": "ImportDirective", @@ -139,7 +139,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", "file": "./MarketCollateralPoolFactoryInterface.sol", "id": 1793, "nodeType": "ImportDirective", @@ -150,7 +150,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", "file": "../MarketContractRegistryInterface.sol", "id": 1794, "nodeType": "ImportDirective", @@ -1042,7 +1042,7 @@ "src": "608:1540:7" }, "legacyAST": { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/factories/MarketCollateralPoolFactory.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/factories/MarketCollateralPoolFactory.sol", "exportedSymbols": { "MarketCollateralPoolFactory": [ 1861 @@ -1063,7 +1063,7 @@ "src": "608:24:7" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketCollateralPool.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketCollateralPool.sol", "file": "../MarketCollateralPool.sol", "id": 1792, "nodeType": "ImportDirective", @@ -1074,7 +1074,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", "file": "./MarketCollateralPoolFactoryInterface.sol", "id": 1793, "nodeType": "ImportDirective", @@ -1085,7 +1085,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", "file": "../MarketContractRegistryInterface.sol", "id": 1794, "nodeType": "ImportDirective", @@ -1984,12 +1984,12 @@ "4": { "events": {}, "links": { - "MathLib": "0x10420151fa1d0676ca274d6e53435ec261190ff0" + "MathLib": "0x28b39df6f57adf357e01c47be86527d6f8c85833" }, - "address": "0x06dcc8dacc3e3d49cf680acb2600c6fb128acce3", - "transactionHash": "0x50a139656b6500551aacbac54e1b07259c92b56b1b17c7e0ba3213b20ca9a94b" + "address": "0xa8a835c747846ab9aa886c5046fae6d3f10abeb2", + "transactionHash": "0xd2e6ba2207ee110e04d2ebaa0e85f145f359e73f16ddf9d751bbf7235dddbf4a" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-07-27T19:00:06.647Z" + "updatedAt": "2018-09-07T17:31:18.235Z" } \ No newline at end of file diff --git a/build/contracts/MarketContractFactoryOraclize.json b/build/contracts/MarketContractFactoryOraclize.json index d602e9a..eb9710b 100644 --- a/build/contracts/MarketContractFactoryOraclize.json +++ b/build/contracts/MarketContractFactoryOraclize.json @@ -169,14 +169,14 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506040516060806160d5833981018060405281019080805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050615f798061015c6000396000f3006080604052600436106200008a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680629d553c146200008f578063798ddbc814620000e95780638da5cb5b1462000143578063ab7b4993146200019d578063ceaaa91514620001e3578063f2fde38b146200023d578063fdea945f1462000283575b600080fd5b3480156200009c57600080fd5b50620000a76200031b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620000f657600080fd5b506200010162000341565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200015057600080fd5b506200015b62000367565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620001aa57600080fd5b50620001e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200038c565b005b348015620001f057600080fd5b50620001fb62000469565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200024a57600080fd5b5062000281600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200048f565b005b3480156200029057600080fd5b5062000319600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908060a001909192919290803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050620005e6565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620003e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200042557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620004eb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200052857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000888833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b8b8b8b8b62000641620008dc565b80806020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001876005602002808284378201915050806020018060200184810384528f8f82818152602001925080828437820191505084810383528888828181526020019250808284378201915050848103825286868281815260200192508082843782019150509e505050505050505050505050505050604051809103906000f0801580156200079d573d6000803e3d6000fd5b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639244f496826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156200085e57600080fd5b505af115801562000873573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f38ee3ff13b5d3453452a79e0799d83b2c8207bf126b2798fa512343680f643ee60405160405180910390a3505050505050505050565b60405161566080620008ee83390190560060806040526000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200566038038062005660833981018060405281019080805182019291906020018051906020019092919080519060200190929190805190602001909291908051906020019092919091908260a0018051820192919060200180518201929190505050878787878787336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384281dcc336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156200027557600080fd5b505af11580156200028a573d6000803e3d6000fd5b505050506040513d6020811015620002a157600080fd5b81019080805190602001909291905050501515620002be57600080fd5b806000600581101515620002ce57fe5b6020020151600781905550806001600581101515620002e957fe5b60200201516006819055506007546006541115156200030757600080fd5b8060026005811015156200031757fe5b60200201516008819055508060036005811015156200033257fe5b60200201516009819055508060046005811015156200034d57fe5b6020020151600a8190555042600a541115156200036957600080fd5b856004908051906020019062000381929190620015b9565b5082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200046b60017f01000000000000000000000000000000000000000000000000000000000000000260107f01000000000000000000000000000000000000000000000000000000000000000217620004db640100000000026401000000009004565b816014908051906020019062000483929190620015b9565b5080601590805190602001906200049c929190620015b9565b50624f1a0042600a540311151515620004b457600080fd5b620004cd62000893640100000000026401000000009004565b505050505050505062001668565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806200055e575060006200055c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000581576200057f600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200060857600080fd5b505af11580156200061d573d6000803e3d6000fd5b505050506040513d60208110156200063457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515620007a157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200072357600080fd5b505af115801562000738573d6000803e3d6000fd5b505050506040513d60208110156200074f57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663688dcfd7826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050600060405180830381600087803b1580156200087757600080fd5b505af11580156200088c573d6000803e3d6000fd5b5050505050565b6000620009f3600a5460148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009365780601f106200090a5761010080835404028352916020019162000936565b820191906000526020600020905b8154815290600101906020018083116200091857829003601f168201915b505050505060158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009d55780601f10620009a957610100808354040283529160200191620009d5565b820191906000526020600020905b815481529060010190602001808311620009b757829003601f168201915b5050505050620249f062000a71640100000000026401000000009004565b9050600060010281600019161415151562000a0d57600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000813b9050919050565b600062000a6a6200103e640100000000026401000000009004565b9050919050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148062000af75750600062000af5601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000b1a5762000b18600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000ba157600080fd5b505af115801562000bb6573d6000803e3d6000fd5b505050506040513d602081101562000bcd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151562000d3a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000cbc57600080fd5b505af115801562000cd1573d6000803e3d6000fd5b505050506040513d602081101562000ce857600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101562000ded57808201518184015260208101905062000dd0565b50505050905090810190601f16801562000e1b5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801562000e3c57600080fd5b505af115801562000e51573d6000803e3d6000fd5b505050506040513d602081101562000e6857600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f82888888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562000f3b57808201518184015260208101905062000f1e565b50505050905090810190601f16801562000f695780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101562000fa457808201518184015260208101905062000f87565b50505050905090810190601f16801562000fd25780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801562000ff557600080fd5b505af11580156200100a573d6000803e3d6000fd5b50505050506040513d60208110156200102257600080fd5b8101908080519060200190929190505050915050949350505050565b6000806200106f731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed62000a44640100000000026401000000009004565b11156200112457731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200111a6040805190810160405280600b81526020017f6574685f6d61696e6e65740000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200115473c03a2615d5efaf5f49f60b7bb6583eaec212fdf162000a44640100000000026401000000009004565b1115620012095773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620011ff6040805190810160405280600c81526020017f6574685f726f707374656e3300000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200123973b7a07bcf2ba2f2703b24c0691b5278999c59ac7e62000a44640100000000026401000000009004565b1115620012ee5773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620012e46040805190810160405280600981526020017f6574685f6b6f76616e00000000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200131e73146500cfd35b22e4a392fe0adc06de1a1368ed4862000a44640100000000026401000000009004565b1115620013d35773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620013c96040805190810160405280600b81526020017f6574685f72696e6b6562790000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b600062001403736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47562000a44640100000000026401000000009004565b11156200146957736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b6000620014997320e12a1f859b3feae5fb2a0a32c18f5a65555bbf62000a44640100000000026401000000009004565b1115620014ff577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b60006200152f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa62000a44640100000000026401000000009004565b111562001595577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b600090505b90565b8060139080519060200190620015b5929190620015b9565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620015fc57805160ff19168380011785556200162d565b828001600101855582156200162d579182015b828111156200162c5782518255916020019190600101906200160f565b5b5090506200163c919062001640565b5090565b6200166591905b808211156200166157600081600090555060010162001647565b5090565b90565b613fe880620016786000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a72305820a52ccf48e4f2c6de7aa2cc11611e9627242651c5eabcc2d8d6ba2fde0bc057ba0029a165627a7a72305820eabcc9e89451c85cb9df7433d8a3be693b4d974b6ae4e490d81c15b8f17fefd70029", - "deployedBytecode": "0x6080604052600436106200008a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680629d553c146200008f578063798ddbc814620000e95780638da5cb5b1462000143578063ab7b4993146200019d578063ceaaa91514620001e3578063f2fde38b146200023d578063fdea945f1462000283575b600080fd5b3480156200009c57600080fd5b50620000a76200031b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620000f657600080fd5b506200010162000341565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200015057600080fd5b506200015b62000367565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620001aa57600080fd5b50620001e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200038c565b005b348015620001f057600080fd5b50620001fb62000469565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200024a57600080fd5b5062000281600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200048f565b005b3480156200029057600080fd5b5062000319600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908060a001909192919290803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050620005e6565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620003e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200042557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620004eb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200052857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000888833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b8b8b8b8b62000641620008dc565b80806020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001876005602002808284378201915050806020018060200184810384528f8f82818152602001925080828437820191505084810383528888828181526020019250808284378201915050848103825286868281815260200192508082843782019150509e505050505050505050505050505050604051809103906000f0801580156200079d573d6000803e3d6000fd5b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639244f496826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156200085e57600080fd5b505af115801562000873573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f38ee3ff13b5d3453452a79e0799d83b2c8207bf126b2798fa512343680f643ee60405160405180910390a3505050505050505050565b60405161566080620008ee83390190560060806040526000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200566038038062005660833981018060405281019080805182019291906020018051906020019092919080519060200190929190805190602001909291908051906020019092919091908260a0018051820192919060200180518201929190505050878787878787336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384281dcc336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156200027557600080fd5b505af11580156200028a573d6000803e3d6000fd5b505050506040513d6020811015620002a157600080fd5b81019080805190602001909291905050501515620002be57600080fd5b806000600581101515620002ce57fe5b6020020151600781905550806001600581101515620002e957fe5b60200201516006819055506007546006541115156200030757600080fd5b8060026005811015156200031757fe5b60200201516008819055508060036005811015156200033257fe5b60200201516009819055508060046005811015156200034d57fe5b6020020151600a8190555042600a541115156200036957600080fd5b856004908051906020019062000381929190620015b9565b5082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200046b60017f01000000000000000000000000000000000000000000000000000000000000000260107f01000000000000000000000000000000000000000000000000000000000000000217620004db640100000000026401000000009004565b816014908051906020019062000483929190620015b9565b5080601590805190602001906200049c929190620015b9565b50624f1a0042600a540311151515620004b457600080fd5b620004cd62000893640100000000026401000000009004565b505050505050505062001668565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806200055e575060006200055c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000581576200057f600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200060857600080fd5b505af11580156200061d573d6000803e3d6000fd5b505050506040513d60208110156200063457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515620007a157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200072357600080fd5b505af115801562000738573d6000803e3d6000fd5b505050506040513d60208110156200074f57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663688dcfd7826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050600060405180830381600087803b1580156200087757600080fd5b505af11580156200088c573d6000803e3d6000fd5b5050505050565b6000620009f3600a5460148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009365780601f106200090a5761010080835404028352916020019162000936565b820191906000526020600020905b8154815290600101906020018083116200091857829003601f168201915b505050505060158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009d55780601f10620009a957610100808354040283529160200191620009d5565b820191906000526020600020905b815481529060010190602001808311620009b757829003601f168201915b5050505050620249f062000a71640100000000026401000000009004565b9050600060010281600019161415151562000a0d57600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000813b9050919050565b600062000a6a6200103e640100000000026401000000009004565b9050919050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148062000af75750600062000af5601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000b1a5762000b18600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000ba157600080fd5b505af115801562000bb6573d6000803e3d6000fd5b505050506040513d602081101562000bcd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151562000d3a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000cbc57600080fd5b505af115801562000cd1573d6000803e3d6000fd5b505050506040513d602081101562000ce857600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101562000ded57808201518184015260208101905062000dd0565b50505050905090810190601f16801562000e1b5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801562000e3c57600080fd5b505af115801562000e51573d6000803e3d6000fd5b505050506040513d602081101562000e6857600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f82888888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562000f3b57808201518184015260208101905062000f1e565b50505050905090810190601f16801562000f695780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101562000fa457808201518184015260208101905062000f87565b50505050905090810190601f16801562000fd25780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801562000ff557600080fd5b505af11580156200100a573d6000803e3d6000fd5b50505050506040513d60208110156200102257600080fd5b8101908080519060200190929190505050915050949350505050565b6000806200106f731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed62000a44640100000000026401000000009004565b11156200112457731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200111a6040805190810160405280600b81526020017f6574685f6d61696e6e65740000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200115473c03a2615d5efaf5f49f60b7bb6583eaec212fdf162000a44640100000000026401000000009004565b1115620012095773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620011ff6040805190810160405280600c81526020017f6574685f726f707374656e3300000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200123973b7a07bcf2ba2f2703b24c0691b5278999c59ac7e62000a44640100000000026401000000009004565b1115620012ee5773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620012e46040805190810160405280600981526020017f6574685f6b6f76616e00000000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200131e73146500cfd35b22e4a392fe0adc06de1a1368ed4862000a44640100000000026401000000009004565b1115620013d35773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620013c96040805190810160405280600b81526020017f6574685f72696e6b6562790000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b600062001403736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47562000a44640100000000026401000000009004565b11156200146957736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b6000620014997320e12a1f859b3feae5fb2a0a32c18f5a65555bbf62000a44640100000000026401000000009004565b1115620014ff577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b60006200152f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa62000a44640100000000026401000000009004565b111562001595577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b600090505b90565b8060139080519060200190620015b5929190620015b9565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620015fc57805160ff19168380011785556200162d565b828001600101855582156200162d579182015b828111156200162c5782518255916020019190600101906200160f565b5b5090506200163c919062001640565b5090565b6200166591905b808211156200166157600081600090555060010162001647565b5090565b90565b613fe880620016786000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a72305820a52ccf48e4f2c6de7aa2cc11611e9627242651c5eabcc2d8d6ba2fde0bc057ba0029a165627a7a72305820eabcc9e89451c85cb9df7433d8a3be693b4d974b6ae4e490d81c15b8f17fefd70029", + "bytecode": "0x608060405234801561001057600080fd5b506040516060806160d5833981018060405281019080805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050615f798061015c6000396000f3006080604052600436106200008a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680629d553c146200008f578063798ddbc814620000e95780638da5cb5b1462000143578063ab7b4993146200019d578063ceaaa91514620001e3578063f2fde38b146200023d578063fdea945f1462000283575b600080fd5b3480156200009c57600080fd5b50620000a76200031b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620000f657600080fd5b506200010162000341565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200015057600080fd5b506200015b62000367565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620001aa57600080fd5b50620001e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200038c565b005b348015620001f057600080fd5b50620001fb62000469565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200024a57600080fd5b5062000281600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200048f565b005b3480156200029057600080fd5b5062000319600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908060a001909192919290803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050620005e6565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620003e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200042557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620004eb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200052857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000888833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b8b8b8b8b62000641620008dc565b80806020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001876005602002808284378201915050806020018060200184810384528f8f82818152602001925080828437820191505084810383528888828181526020019250808284378201915050848103825286868281815260200192508082843782019150509e505050505050505050505050505050604051809103906000f0801580156200079d573d6000803e3d6000fd5b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639244f496826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156200085e57600080fd5b505af115801562000873573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f38ee3ff13b5d3453452a79e0799d83b2c8207bf126b2798fa512343680f643ee60405160405180910390a3505050505050505050565b60405161566080620008ee83390190560060806040526000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200566038038062005660833981018060405281019080805182019291906020018051906020019092919080519060200190929190805190602001909291908051906020019092919091908260a0018051820192919060200180518201929190505050878787878787336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384281dcc336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156200027557600080fd5b505af11580156200028a573d6000803e3d6000fd5b505050506040513d6020811015620002a157600080fd5b81019080805190602001909291905050501515620002be57600080fd5b806000600581101515620002ce57fe5b6020020151600781905550806001600581101515620002e957fe5b60200201516006819055506007546006541115156200030757600080fd5b8060026005811015156200031757fe5b60200201516008819055508060036005811015156200033257fe5b60200201516009819055508060046005811015156200034d57fe5b6020020151600a8190555042600a541115156200036957600080fd5b856004908051906020019062000381929190620015b9565b5082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200046b60017f01000000000000000000000000000000000000000000000000000000000000000260107f01000000000000000000000000000000000000000000000000000000000000000217620004db640100000000026401000000009004565b816014908051906020019062000483929190620015b9565b5080601590805190602001906200049c929190620015b9565b50624f1a0042600a540311151515620004b457600080fd5b620004cd62000893640100000000026401000000009004565b505050505050505062001668565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806200055e575060006200055c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000581576200057f600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200060857600080fd5b505af11580156200061d573d6000803e3d6000fd5b505050506040513d60208110156200063457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515620007a157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200072357600080fd5b505af115801562000738573d6000803e3d6000fd5b505050506040513d60208110156200074f57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663688dcfd7826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050600060405180830381600087803b1580156200087757600080fd5b505af11580156200088c573d6000803e3d6000fd5b5050505050565b6000620009f3600a5460148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009365780601f106200090a5761010080835404028352916020019162000936565b820191906000526020600020905b8154815290600101906020018083116200091857829003601f168201915b505050505060158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009d55780601f10620009a957610100808354040283529160200191620009d5565b820191906000526020600020905b815481529060010190602001808311620009b757829003601f168201915b5050505050620249f062000a71640100000000026401000000009004565b9050600060010281600019161415151562000a0d57600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000813b9050919050565b600062000a6a6200103e640100000000026401000000009004565b9050919050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148062000af75750600062000af5601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000b1a5762000b18600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000ba157600080fd5b505af115801562000bb6573d6000803e3d6000fd5b505050506040513d602081101562000bcd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151562000d3a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000cbc57600080fd5b505af115801562000cd1573d6000803e3d6000fd5b505050506040513d602081101562000ce857600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101562000ded57808201518184015260208101905062000dd0565b50505050905090810190601f16801562000e1b5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801562000e3c57600080fd5b505af115801562000e51573d6000803e3d6000fd5b505050506040513d602081101562000e6857600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f82888888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562000f3b57808201518184015260208101905062000f1e565b50505050905090810190601f16801562000f695780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101562000fa457808201518184015260208101905062000f87565b50505050905090810190601f16801562000fd25780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801562000ff557600080fd5b505af11580156200100a573d6000803e3d6000fd5b50505050506040513d60208110156200102257600080fd5b8101908080519060200190929190505050915050949350505050565b6000806200106f731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed62000a44640100000000026401000000009004565b11156200112457731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200111a6040805190810160405280600b81526020017f6574685f6d61696e6e65740000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200115473c03a2615d5efaf5f49f60b7bb6583eaec212fdf162000a44640100000000026401000000009004565b1115620012095773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620011ff6040805190810160405280600c81526020017f6574685f726f707374656e3300000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200123973b7a07bcf2ba2f2703b24c0691b5278999c59ac7e62000a44640100000000026401000000009004565b1115620012ee5773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620012e46040805190810160405280600981526020017f6574685f6b6f76616e00000000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200131e73146500cfd35b22e4a392fe0adc06de1a1368ed4862000a44640100000000026401000000009004565b1115620013d35773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620013c96040805190810160405280600b81526020017f6574685f72696e6b6562790000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b600062001403736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47562000a44640100000000026401000000009004565b11156200146957736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b6000620014997320e12a1f859b3feae5fb2a0a32c18f5a65555bbf62000a44640100000000026401000000009004565b1115620014ff577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b60006200152f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa62000a44640100000000026401000000009004565b111562001595577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b600090505b90565b8060139080519060200190620015b5929190620015b9565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620015fc57805160ff19168380011785556200162d565b828001600101855582156200162d579182015b828111156200162c5782518255916020019190600101906200160f565b5b5090506200163c919062001640565b5090565b6200166591905b808211156200166157600081600090555060010162001647565b5090565b90565b613fe880620016786000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a723058203efc5ed5666ae0e73f727f12f9beeab30676fc0e6e29e27bf13bcc4a0051dc020029a165627a7a72305820a04a68803ff51f0c0c3968747abebf0cda9933611d7b570f98613f3021f2bbb80029", + "deployedBytecode": "0x6080604052600436106200008a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680629d553c146200008f578063798ddbc814620000e95780638da5cb5b1462000143578063ab7b4993146200019d578063ceaaa91514620001e3578063f2fde38b146200023d578063fdea945f1462000283575b600080fd5b3480156200009c57600080fd5b50620000a76200031b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620000f657600080fd5b506200010162000341565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200015057600080fd5b506200015b62000367565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620001aa57600080fd5b50620001e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200038c565b005b348015620001f057600080fd5b50620001fb62000469565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200024a57600080fd5b5062000281600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200048f565b005b3480156200029057600080fd5b5062000319600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908060a001909192919290803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050620005e6565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620003e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200042557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620004eb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200052857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000888833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b8b8b8b8b62000641620008dc565b80806020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001876005602002808284378201915050806020018060200184810384528f8f82818152602001925080828437820191505084810383528888828181526020019250808284378201915050848103825286868281815260200192508082843782019150509e505050505050505050505050505050604051809103906000f0801580156200079d573d6000803e3d6000fd5b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639244f496826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156200085e57600080fd5b505af115801562000873573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f38ee3ff13b5d3453452a79e0799d83b2c8207bf126b2798fa512343680f643ee60405160405180910390a3505050505050505050565b60405161566080620008ee83390190560060806040526000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200566038038062005660833981018060405281019080805182019291906020018051906020019092919080519060200190929190805190602001909291908051906020019092919091908260a0018051820192919060200180518201929190505050878787878787336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384281dcc336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156200027557600080fd5b505af11580156200028a573d6000803e3d6000fd5b505050506040513d6020811015620002a157600080fd5b81019080805190602001909291905050501515620002be57600080fd5b806000600581101515620002ce57fe5b6020020151600781905550806001600581101515620002e957fe5b60200201516006819055506007546006541115156200030757600080fd5b8060026005811015156200031757fe5b60200201516008819055508060036005811015156200033257fe5b60200201516009819055508060046005811015156200034d57fe5b6020020151600a8190555042600a541115156200036957600080fd5b856004908051906020019062000381929190620015b9565b5082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200046b60017f01000000000000000000000000000000000000000000000000000000000000000260107f01000000000000000000000000000000000000000000000000000000000000000217620004db640100000000026401000000009004565b816014908051906020019062000483929190620015b9565b5080601590805190602001906200049c929190620015b9565b50624f1a0042600a540311151515620004b457600080fd5b620004cd62000893640100000000026401000000009004565b505050505050505062001668565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806200055e575060006200055c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000581576200057f600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200060857600080fd5b505af11580156200061d573d6000803e3d6000fd5b505050506040513d60208110156200063457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515620007a157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200072357600080fd5b505af115801562000738573d6000803e3d6000fd5b505050506040513d60208110156200074f57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663688dcfd7826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050600060405180830381600087803b1580156200087757600080fd5b505af11580156200088c573d6000803e3d6000fd5b5050505050565b6000620009f3600a5460148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009365780601f106200090a5761010080835404028352916020019162000936565b820191906000526020600020905b8154815290600101906020018083116200091857829003601f168201915b505050505060158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009d55780601f10620009a957610100808354040283529160200191620009d5565b820191906000526020600020905b815481529060010190602001808311620009b757829003601f168201915b5050505050620249f062000a71640100000000026401000000009004565b9050600060010281600019161415151562000a0d57600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000813b9050919050565b600062000a6a6200103e640100000000026401000000009004565b9050919050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148062000af75750600062000af5601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000b1a5762000b18600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000ba157600080fd5b505af115801562000bb6573d6000803e3d6000fd5b505050506040513d602081101562000bcd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151562000d3a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000cbc57600080fd5b505af115801562000cd1573d6000803e3d6000fd5b505050506040513d602081101562000ce857600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101562000ded57808201518184015260208101905062000dd0565b50505050905090810190601f16801562000e1b5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801562000e3c57600080fd5b505af115801562000e51573d6000803e3d6000fd5b505050506040513d602081101562000e6857600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f82888888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562000f3b57808201518184015260208101905062000f1e565b50505050905090810190601f16801562000f695780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101562000fa457808201518184015260208101905062000f87565b50505050905090810190601f16801562000fd25780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801562000ff557600080fd5b505af11580156200100a573d6000803e3d6000fd5b50505050506040513d60208110156200102257600080fd5b8101908080519060200190929190505050915050949350505050565b6000806200106f731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed62000a44640100000000026401000000009004565b11156200112457731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200111a6040805190810160405280600b81526020017f6574685f6d61696e6e65740000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200115473c03a2615d5efaf5f49f60b7bb6583eaec212fdf162000a44640100000000026401000000009004565b1115620012095773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620011ff6040805190810160405280600c81526020017f6574685f726f707374656e3300000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200123973b7a07bcf2ba2f2703b24c0691b5278999c59ac7e62000a44640100000000026401000000009004565b1115620012ee5773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620012e46040805190810160405280600981526020017f6574685f6b6f76616e00000000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200131e73146500cfd35b22e4a392fe0adc06de1a1368ed4862000a44640100000000026401000000009004565b1115620013d35773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620013c96040805190810160405280600b81526020017f6574685f72696e6b6562790000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b600062001403736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47562000a44640100000000026401000000009004565b11156200146957736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b6000620014997320e12a1f859b3feae5fb2a0a32c18f5a65555bbf62000a44640100000000026401000000009004565b1115620014ff577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b60006200152f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa62000a44640100000000026401000000009004565b111562001595577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b600090505b90565b8060139080519060200190620015b5929190620015b9565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620015fc57805160ff19168380011785556200162d565b828001600101855582156200162d579182015b828111156200162c5782518255916020019190600101906200160f565b5b5090506200163c919062001640565b5090565b6200166591905b808211156200166157600081600090555060010162001647565b5090565b90565b613fe880620016786000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a723058203efc5ed5666ae0e73f727f12f9beeab30676fc0e6e29e27bf13bcc4a0051dc020029a165627a7a72305820a04a68803ff51f0c0c3968747abebf0cda9933611d7b570f98613f3021f2bbb80029", "sourceMap": "945:3464:12:-;;;1506:290;8:9:-1;5:2;;;30:1;27;20:12;5:2;1506:290:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;509:10:25;501:5;;:18;;;;;;;;;;;;;;;;;;1654:15:12;1629:22;;:40;;;;;;;;;;;;;;;;;;1699:15;1679:17;;:35;;;;;;;;;;;;;;;;;;1755:34;1724:28;;:65;;;;;;;;;;;;;;;;;;1506:290;;;945:3464;;;;;;", "deployedSourceMap": "945:3464:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1045:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1045:43:12;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1094:32:12;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;3779:177:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3779:177:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:37:12;;;;;;;;;;;;;;;;;;;;;;;;;;;832:174:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;832:174:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;2921:710:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2921:710:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1045:43;;;;;;;;;;;;;:::o;1094:32::-;;;;;;;;;;;;;:::o;238:20:25:-;;;;;;;;;;;;;:::o;3779:177:12:-;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;3896:1:12;3869:29;;:15;:29;;;;3861:38;;;;;;;;3934:15;3909:22;;:40;;;;;;;;;;;;;;;;;;3779:177;:::o;1002:37::-;;;;;;;;;;;;;:::o;832:174:25:-;653:5;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;928:1;908:22;;:8;:22;;;;900:31;;;;;;;;970:8;942:37;;963:5;;;;;;;;;;;942:37;;;;;;;;;;;;993:8;985:5;;:16;;;;;;;;;;;;;;;;;;832:174;:::o;2921:710:12:-;3149:34;3226:12;;3252:10;3276:17;;;;;;;;;;;3307:22;3343:28;;;;;;;;;;;3385:13;3412:16;;3442:11;;3186:277;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3186:277:12;3149:314;;3505:22;;;;;;;;;;;3473:77;;;3551:11;3473:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3473:90:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3473:90:12;;;;3612:11;3578:46;;3600:10;3578:46;;;;;;;;;;;;2921:710;;;;;;;;;:::o;945:3464::-;;;;;;;;;;:::o", "source": "/*\n Copyright 2017-2018 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity ^0.4.24;\n\nimport \"./MarketContractOraclize.sol\";\nimport \"../MarketContractRegistryInterface.sol\";\nimport \"../factories/MarketCollateralPoolFactoryInterface.sol\";\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n\n/// @title MarketContractFactoryOraclize\n/// @author Phil Elsasser \ncontract MarketContractFactoryOraclize is Ownable {\n\n address public marketContractRegistry;\n address public collateralPoolFactoryAddress;\n address public MKT_TOKEN_ADDRESS;\n\n event MarketContractCreated(address indexed creator, address indexed contractAddress);\n\n /// @dev deploys our factory and ties it the a supply registry address\n /// @param registryAddress - address of our MARKET registry\n /// @param mktTokenAddress - MARKET Token address\n /// @param marketCollateralPoolFactoryAddress - address of collateral pool factory.\n constructor(address registryAddress, address mktTokenAddress, address marketCollateralPoolFactoryAddress) public {\n marketContractRegistry = registryAddress;\n MKT_TOKEN_ADDRESS = mktTokenAddress;\n collateralPoolFactoryAddress = marketCollateralPoolFactoryAddress;\n }\n\n /// @dev Deploys a new instance of a market contract and adds it to the whitelist.\n /// @param contractName viewable name of this contract (BTC/ETH, LTC/ETH, etc)\n /// @param collateralTokenAddress address of the ERC20 token that will be used for collateral and pricing\n /// @param contractSpecs array of unsigned integers including:\n /// floorPrice minimum tradeable price of this contract, contract enters settlement if breached\n /// capPrice maximum tradeable price of this contract, contract enters settlement if breached\n /// priceDecimalPlaces number of decimal places to convert our queried price from a floating point to\n /// an integer\n /// qtyMultiplier multiply traded qty by this value from base units of collateral token.\n /// expirationTimeStamp - seconds from epoch that this contract expires and enters settlement\n /// @param oracleDataSource a data-source such as \"URL\", \"WolframAlpha\", \"IPFS\"\n /// see http://docs.oraclize.it/#ethereum-quick-start-simple-query\n /// @param oracleQuery see http://docs.oraclize.it/#ethereum-quick-start-simple-query for examples\n function deployMarketContractOraclize(\n string contractName,\n address collateralTokenAddress,\n uint[5] contractSpecs,\n string oracleDataSource,\n string oracleQuery\n ) external\n {\n MarketContractOraclize mktContract = new MarketContractOraclize(\n contractName,\n msg.sender,\n MKT_TOKEN_ADDRESS,\n collateralTokenAddress,\n collateralPoolFactoryAddress,\n contractSpecs,\n oracleDataSource,\n oracleQuery\n );\n MarketContractRegistryInterface(marketContractRegistry).addAddressToWhiteList(mktContract);\n emit MarketContractCreated(msg.sender, mktContract);\n }\n\n /// @dev allows for the owner to set the desired registry for contract creation.\n /// @param registryAddress desired registry address.\n function setRegistryAddress(address registryAddress) external onlyOwner {\n require(registryAddress != address(0));\n marketContractRegistry = registryAddress;\n }\n\n /*\n currently adding this function pushes us over the edge for gas, for the time being we can leave it out.\n /// @dev allows for the owner to set switch out factories\n /// @param marketCollateralPoolFactoryAddress desired factory address.\n function setCollateralPoolFactoryAddress(address marketCollateralPoolFactoryAddress) external onlyOwner {\n collateralPoolFactoryAddress = marketCollateralPoolFactoryAddress;\n }\n */\n}\n", - "sourcePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractFactoryOraclize.sol", + "sourcePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractFactoryOraclize.sol", "ast": { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractFactoryOraclize.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractFactoryOraclize.sol", "exportedSymbols": { "MarketContractFactoryOraclize": [ 2756 @@ -197,7 +197,7 @@ "src": "608:24:12" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", "file": "./MarketContractOraclize.sol", "id": 2652, "nodeType": "ImportDirective", @@ -208,7 +208,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", "file": "../MarketContractRegistryInterface.sol", "id": 2653, "nodeType": "ImportDirective", @@ -219,7 +219,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", "file": "../factories/MarketCollateralPoolFactoryInterface.sol", "id": 2654, "nodeType": "ImportDirective", @@ -1564,7 +1564,7 @@ "src": "608:3802:12" }, "legacyAST": { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractFactoryOraclize.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractFactoryOraclize.sol", "exportedSymbols": { "MarketContractFactoryOraclize": [ 2756 @@ -1585,7 +1585,7 @@ "src": "608:24:12" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", "file": "./MarketContractOraclize.sol", "id": 2652, "nodeType": "ImportDirective", @@ -1596,7 +1596,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", "file": "../MarketContractRegistryInterface.sol", "id": 2653, "nodeType": "ImportDirective", @@ -1607,7 +1607,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", "file": "../factories/MarketCollateralPoolFactoryInterface.sol", "id": 2654, "nodeType": "ImportDirective", @@ -2957,49 +2957,14 @@ }, "networks": { "4": { - "events": { - "0x38ee3ff13b5d3453452a79e0799d83b2c8207bf126b2798fa512343680f643ee": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "creator", - "type": "address" - }, - { - "indexed": true, - "name": "contractAddress", - "type": "address" - } - ], - "name": "MarketContractCreated", - "type": "event" - }, - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - } - }, + "events": {}, "links": { - "OrderLib": "0xf40577d3be99effc6634b44ee465e9efed7a6733" + "OrderLib": "0x5374c9b5d0d60e7f58063e02e6fd905ff94c4fb6" }, - "address": "0x95f59498ceb2b4c9aa14cc470dddef4adafbe4c9", - "transactionHash": "0x0c780912cc25bebcb24c2ee51243ec131e5024b0798787cddf139f4de5898e86" + "address": "0x91137a8189fbaef42f9f9ad77653eeb006f944c9", + "transactionHash": "0xa0942a153efc879ca69fa46549815b35345ba7f55a3eb5eb726aa55406e9bb8b" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-07-27T19:00:06.644Z" + "updatedAt": "2018-09-07T17:31:18.229Z" } \ No newline at end of file diff --git a/build/contracts/MarketContractOraclize.json b/build/contracts/MarketContractOraclize.json index 4636e8a..b292741 100644 --- a/build/contracts/MarketContractOraclize.json +++ b/build/contracts/MarketContractOraclize.json @@ -638,14 +638,14 @@ "type": "function" } ], - "bytecode": "0x60806040526000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200566038038062005660833981018060405281019080805182019291906020018051906020019092919080519060200190929190805190602001909291908051906020019092919091908260a0018051820192919060200180518201929190505050878787878787336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384281dcc336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156200027557600080fd5b505af11580156200028a573d6000803e3d6000fd5b505050506040513d6020811015620002a157600080fd5b81019080805190602001909291905050501515620002be57600080fd5b806000600581101515620002ce57fe5b6020020151600781905550806001600581101515620002e957fe5b60200201516006819055506007546006541115156200030757600080fd5b8060026005811015156200031757fe5b60200201516008819055508060036005811015156200033257fe5b60200201516009819055508060046005811015156200034d57fe5b6020020151600a8190555042600a541115156200036957600080fd5b856004908051906020019062000381929190620015b9565b5082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200046b60017f01000000000000000000000000000000000000000000000000000000000000000260107f01000000000000000000000000000000000000000000000000000000000000000217620004db640100000000026401000000009004565b816014908051906020019062000483929190620015b9565b5080601590805190602001906200049c929190620015b9565b50624f1a0042600a540311151515620004b457600080fd5b620004cd62000893640100000000026401000000009004565b505050505050505062001668565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806200055e575060006200055c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000581576200057f600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200060857600080fd5b505af11580156200061d573d6000803e3d6000fd5b505050506040513d60208110156200063457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515620007a157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200072357600080fd5b505af115801562000738573d6000803e3d6000fd5b505050506040513d60208110156200074f57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663688dcfd7826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050600060405180830381600087803b1580156200087757600080fd5b505af11580156200088c573d6000803e3d6000fd5b5050505050565b6000620009f3600a5460148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009365780601f106200090a5761010080835404028352916020019162000936565b820191906000526020600020905b8154815290600101906020018083116200091857829003601f168201915b505050505060158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009d55780601f10620009a957610100808354040283529160200191620009d5565b820191906000526020600020905b815481529060010190602001808311620009b757829003601f168201915b5050505050620249f062000a71640100000000026401000000009004565b9050600060010281600019161415151562000a0d57600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000813b9050919050565b600062000a6a6200103e640100000000026401000000009004565b9050919050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148062000af75750600062000af5601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000b1a5762000b18600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000ba157600080fd5b505af115801562000bb6573d6000803e3d6000fd5b505050506040513d602081101562000bcd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151562000d3a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000cbc57600080fd5b505af115801562000cd1573d6000803e3d6000fd5b505050506040513d602081101562000ce857600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101562000ded57808201518184015260208101905062000dd0565b50505050905090810190601f16801562000e1b5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801562000e3c57600080fd5b505af115801562000e51573d6000803e3d6000fd5b505050506040513d602081101562000e6857600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f82888888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562000f3b57808201518184015260208101905062000f1e565b50505050905090810190601f16801562000f695780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101562000fa457808201518184015260208101905062000f87565b50505050905090810190601f16801562000fd25780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801562000ff557600080fd5b505af11580156200100a573d6000803e3d6000fd5b50505050506040513d60208110156200102257600080fd5b8101908080519060200190929190505050915050949350505050565b6000806200106f731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed62000a44640100000000026401000000009004565b11156200112457731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200111a6040805190810160405280600b81526020017f6574685f6d61696e6e65740000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200115473c03a2615d5efaf5f49f60b7bb6583eaec212fdf162000a44640100000000026401000000009004565b1115620012095773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620011ff6040805190810160405280600c81526020017f6574685f726f707374656e3300000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200123973b7a07bcf2ba2f2703b24c0691b5278999c59ac7e62000a44640100000000026401000000009004565b1115620012ee5773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620012e46040805190810160405280600981526020017f6574685f6b6f76616e00000000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200131e73146500cfd35b22e4a392fe0adc06de1a1368ed4862000a44640100000000026401000000009004565b1115620013d35773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620013c96040805190810160405280600b81526020017f6574685f72696e6b6562790000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b600062001403736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47562000a44640100000000026401000000009004565b11156200146957736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b6000620014997320e12a1f859b3feae5fb2a0a32c18f5a65555bbf62000a44640100000000026401000000009004565b1115620014ff577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b60006200152f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa62000a44640100000000026401000000009004565b111562001595577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b600090505b90565b8060139080519060200190620015b5929190620015b9565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620015fc57805160ff19168380011785556200162d565b828001600101855582156200162d579182015b828111156200162c5782518255916020019190600101906200160f565b5b5090506200163c919062001640565b5090565b6200166591905b808211156200166157600081600090555060010162001647565b5090565b90565b613fe880620016786000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a72305820a52ccf48e4f2c6de7aa2cc11611e9627242651c5eabcc2d8d6ba2fde0bc057ba0029", - "deployedBytecode": "0x60806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a72305820a52ccf48e4f2c6de7aa2cc11611e9627242651c5eabcc2d8d6ba2fde0bc057ba0029", + "bytecode": "0x60806040526000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200566038038062005660833981018060405281019080805182019291906020018051906020019092919080519060200190929190805190602001909291908051906020019092919091908260a0018051820192919060200180518201929190505050878787878787336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384281dcc336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156200027557600080fd5b505af11580156200028a573d6000803e3d6000fd5b505050506040513d6020811015620002a157600080fd5b81019080805190602001909291905050501515620002be57600080fd5b806000600581101515620002ce57fe5b6020020151600781905550806001600581101515620002e957fe5b60200201516006819055506007546006541115156200030757600080fd5b8060026005811015156200031757fe5b60200201516008819055508060036005811015156200033257fe5b60200201516009819055508060046005811015156200034d57fe5b6020020151600a8190555042600a541115156200036957600080fd5b856004908051906020019062000381929190620015b9565b5082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200046b60017f01000000000000000000000000000000000000000000000000000000000000000260107f01000000000000000000000000000000000000000000000000000000000000000217620004db640100000000026401000000009004565b816014908051906020019062000483929190620015b9565b5080601590805190602001906200049c929190620015b9565b50624f1a0042600a540311151515620004b457600080fd5b620004cd62000893640100000000026401000000009004565b505050505050505062001668565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806200055e575060006200055c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000581576200057f600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200060857600080fd5b505af11580156200061d573d6000803e3d6000fd5b505050506040513d60208110156200063457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515620007a157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200072357600080fd5b505af115801562000738573d6000803e3d6000fd5b505050506040513d60208110156200074f57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663688dcfd7826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050600060405180830381600087803b1580156200087757600080fd5b505af11580156200088c573d6000803e3d6000fd5b5050505050565b6000620009f3600a5460148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009365780601f106200090a5761010080835404028352916020019162000936565b820191906000526020600020905b8154815290600101906020018083116200091857829003601f168201915b505050505060158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009d55780601f10620009a957610100808354040283529160200191620009d5565b820191906000526020600020905b815481529060010190602001808311620009b757829003601f168201915b5050505050620249f062000a71640100000000026401000000009004565b9050600060010281600019161415151562000a0d57600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000813b9050919050565b600062000a6a6200103e640100000000026401000000009004565b9050919050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148062000af75750600062000af5601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000b1a5762000b18600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000ba157600080fd5b505af115801562000bb6573d6000803e3d6000fd5b505050506040513d602081101562000bcd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151562000d3a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000cbc57600080fd5b505af115801562000cd1573d6000803e3d6000fd5b505050506040513d602081101562000ce857600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101562000ded57808201518184015260208101905062000dd0565b50505050905090810190601f16801562000e1b5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801562000e3c57600080fd5b505af115801562000e51573d6000803e3d6000fd5b505050506040513d602081101562000e6857600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f82888888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562000f3b57808201518184015260208101905062000f1e565b50505050905090810190601f16801562000f695780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101562000fa457808201518184015260208101905062000f87565b50505050905090810190601f16801562000fd25780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801562000ff557600080fd5b505af11580156200100a573d6000803e3d6000fd5b50505050506040513d60208110156200102257600080fd5b8101908080519060200190929190505050915050949350505050565b6000806200106f731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed62000a44640100000000026401000000009004565b11156200112457731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200111a6040805190810160405280600b81526020017f6574685f6d61696e6e65740000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200115473c03a2615d5efaf5f49f60b7bb6583eaec212fdf162000a44640100000000026401000000009004565b1115620012095773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620011ff6040805190810160405280600c81526020017f6574685f726f707374656e3300000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200123973b7a07bcf2ba2f2703b24c0691b5278999c59ac7e62000a44640100000000026401000000009004565b1115620012ee5773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620012e46040805190810160405280600981526020017f6574685f6b6f76616e00000000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200131e73146500cfd35b22e4a392fe0adc06de1a1368ed4862000a44640100000000026401000000009004565b1115620013d35773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620013c96040805190810160405280600b81526020017f6574685f72696e6b6562790000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b600062001403736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47562000a44640100000000026401000000009004565b11156200146957736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b6000620014997320e12a1f859b3feae5fb2a0a32c18f5a65555bbf62000a44640100000000026401000000009004565b1115620014ff577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b60006200152f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa62000a44640100000000026401000000009004565b111562001595577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b600090505b90565b8060139080519060200190620015b5929190620015b9565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620015fc57805160ff19168380011785556200162d565b828001600101855582156200162d579182015b828111156200162c5782518255916020019190600101906200160f565b5b5090506200163c919062001640565b5090565b6200166591905b808211156200166157600081600090555060010162001647565b5090565b90565b613fe880620016786000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a723058203efc5ed5666ae0e73f727f12f9beeab30676fc0e6e29e27bf13bcc4a0051dc020029", + "deployedBytecode": "0x60806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a723058203efc5ed5666ae0e73f727f12f9beeab30676fc0e6e29e27bf13bcc4a0051dc020029", "sourceMap": "875:5632:13:-;;;2308:5:3;2284:29;;;;;;;;;;;;;;;;;;;;2364:5;2319:50;;;;;;;;;;;;;;;;;;;;2601:1060:13;8:9:-1;5:2;;;30:1;27;20:12;5:2;2601:1060:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2918:12;2940:14;2964:18;2992:22;3024:28;3062:13;1017:10:0;1007:7;;:20;;;;;;;;;;;;;;;;;;4580:28:3;4546:31;;:62;;;;;;;;;;;;;;;;;;4638:18;4618:17;;:38;;;;;;;;;;;;;;;;;;4690:18;4666:9;;:43;;;;;;;;;;;;;;;;;;4727:9;;;;;;;;;;;:48;;;4776:10;4727:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4727:60:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4727:60:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4727:60:3;;;;;;;;;;;;;;;;4719:69;;;;;;;;4845:13;4859:1;4845:16;;;;;;;;;;;;;4831:11;:30;;;;4883:13;4897:1;4883:16;;;;;;;;;;;;;4871:9;:28;;;;4929:11;;4917:9;;:23;4909:32;;;;;;;;4975:13;4989:1;4975:16;;;;;;;;;;;;;4952:20;:39;;;;5018:13;5032:1;5018:16;;;;;;;;;;;;;5001:14;:33;;;;5057:13;5071:1;5057:16;;;;;;;;;;;;;5044:10;:29;;;;5104:3;5091:10;;:16;5083:25;;;;;;;;5135:12;5119:13;:28;;;;;;;;;;;;:::i;:::-;;5184:22;5157:24;;:49;;;;;;;;;;;;;;;;;;5226:14;5216:7;;:24;;;;;;;;;;;;;;;;;;4293:954;;;;;;3104:58:13;1928:4:17;3144:17:13;;1884:4:17;3122:19:13;;:39;3104:17;;;:58;;;:::i;:::-;3303:16;3282:18;:37;;;;;;;;;;;;:::i;:::-;;3344:11;3329:12;:26;;;;;;;;;;;;:::i;:::-;;3544:7;3537:3;3524:10;;:16;:27;;3516:36;;;;;;;;3562:13;:11;;;:13;;;:::i;:::-;2601:1060;;;;;;;;875:5632;;6602:114:17;2254:1;2248:3;;;;;;;;;;;2240:15;;;2239:49;;;;2286:1;2259:25;2279:3;;;;;;;;;;;2259:11;;;:25;;;:::i;:::-;:28;2239:49;2236:101;;;2302:35;1970:1;2302:19;;;:35;;;:::i;:::-;;2236:101;2372:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2372:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2372:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2372:16:17;;;;;;;;;;;;;;;;2351:37;;2359:8;;;;;;;;;;;2351:37;;;;2348:92;;;2423:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2423:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2423:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2423:16:17;;;;;;;;;;;;;;;;2402:8;;:38;;;;;;;;;;;;;;;;;;2348:92;6680:8;;;;;;;;;;;:21;;;6702:6;6680:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6680:29:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6680:29:17;;;;6602:114;:::o;5573:932:13:-;6272:15;6290:138;6318:10;;6342:18;6290:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6374:12;6290:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1104:6;6290:14;;;:138;;;:::i;:::-;6272:156;;6457:1;6446:12;;:7;:12;;;;;6438:21;;;;;;;;6494:4;6469:13;:22;6483:7;6469:22;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;5573:932;:::o;6858:150:17:-;6920:10;6986:5;6974:18;6965:27;;6951:51;;;:::o;2564:183::-;2627:4;2647:21;:19;;;:21;;;:::i;:::-;2640:28;;2564:183;;;:::o;5732:383::-;5848:10;5869;2254:1;2248:3;;;;;;;;;;;2240:15;;;2239:49;;;;2286:1;2259:25;2279:3;;;;;;;;;;;2259:11;;;:25;;;:::i;:::-;:28;2239:49;2236:101;;;2302:35;1970:1;2302:19;;;:35;;;:::i;:::-;;2236:101;2372:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2372:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2372:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2372:16:17;;;;;;;;;;;;;;;;2351:37;;2359:8;;;;;;;;;;;2351:37;;;;2348:92;;;2423:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2423:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2423:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2423:16:17;;;;;;;;;;;;;;;;2402:8;;:38;;;;;;;;;;;;;;;;;;2348:92;5882:8;;;;;;;;;;;:17;;;5900:10;5912:8;5882:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5882:39:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5882:39:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5882:39:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5882:39:17;;;;;;;;;;;;;;;;5869:52;;6030:8;;;;;;;;;;;:27;;;6064:5;6071:9;6082:10;6094:3;6099:8;6030:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6030:78:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6030:78:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6030:78:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6030:78:17;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6030:78:17;;;;;;;;;;;;;;;;6023:85;;5732:383;;;;;;;:::o;2752:1749::-;2800:4;2875:1;2819:55;2831:42;2819:11;;;:55;;;:::i;:::-;:57;2815:245;;;2929:42;2901:3;;:71;;;;;;;;;;;;;;;;;;2986:38;;;;;;;;;;;;;;;;;;;:23;;;:38;;;:::i;:::-;3045:4;3038:11;;;;2815:245;3129:1;3073:55;3085:42;3073:11;;;:55;;;:::i;:::-;:57;3069:254;;;3191:42;3163:3;;:71;;;;;;;;;;;;;;;;;;3248:39;;;;;;;;;;;;;;;;;;;:23;;;:39;;;:::i;:::-;3308:4;3301:11;;;;3069:254;3392:1;3336:55;3348:42;3336:11;;;:55;;;:::i;:::-;:57;3332:249;;;3452:42;3424:3;;:71;;;;;;;;;;;;;;;;;;3509:36;;;;;;;;;;;;;;;;;;;:23;;;:36;;;:::i;:::-;3566:4;3559:11;;;;3332:249;3650:1;3594:55;3606:42;3594:11;;;:55;;;:::i;:::-;:57;3590:253;;;3712:42;3684:3;;:71;;;;;;;;;;;;;;;;;;3769:38;;;;;;;;;;;;;;;;;;;:23;;;:38;;;:::i;:::-;3828:4;3821:11;;;;3590:253;3912:1;3856:55;3868:42;3856:11;;;:55;;;:::i;:::-;:57;3852:201;;;3974:42;3946:3;;:71;;;;;;;;;;;;;;;;;;4038:4;4031:11;;;;3852:201;4122:1;4066:55;4078:42;4066:11;;;:55;;;:::i;:::-;:57;4062:200;;;4183:42;4155:3;;:71;;;;;;;;;;;;;;;;;;4247:4;4240:11;;;;4062:200;4331:1;4275:55;4287:42;4275:11;;;:55;;;:::i;:::-;:57;4271:202;;;4394:42;4366:3;;:71;;;;;;;;;;;;;;;;;;4458:4;4451:11;;;;4271:202;4489:5;4482:12;;2752:1749;;:::o;7645:118::-;7743:13;7719:21;:37;;;;;;;;;;;;:::i;:::-;;7645:118;:::o;875:5632:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "875:5632:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;947:22:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;947:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2224:21:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2224:21:3;;;;;;;;;;;;;;;;;;;;;;;1251:34:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1251:34:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1251:34:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4507:111:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4507:111:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1935:32:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1935:32:3;;;;;;;;;;;;;;;;;;;;;;;1834:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1834:39:3;;;;;;;;;;;;;;;;;;;;;;;;;;;2284:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2284:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;4930:528:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4930:528:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2319:50:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2319:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;1062:48:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1062:48:13;;;;;;;;;;;;;;;;;;;;;;;12629:168:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12629:168:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;992:32:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;992:32:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;992:32:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1030:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1030:26:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1030:26:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1801:27:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1801:27:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1801:27:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4051:599:13;;;;;;1734:32:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1734:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;;5771:2986;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5771:2986:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2394:45:3;;;;;;;;;;;;;;;;;;;;;;;;;;;1879:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1879:21:3;;;;;;;;;;;;;;;;;;;;;;;2172:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2172:22:3;;;;;;;;;;;;;;;;;;;;;;;10874:540;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10874:540:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;1906:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1906:23:3;;;;;;;;;;;;;;;;;;;;;;;2047:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2047:26:3;;;;;;;;;;;;;;;;;;;;;;;1682:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1682:46:3;;;;;;;;;;;;;;;;;;;;;;;;;;;2251:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2251:27:3;;;;;;;;;;;;;;;;;;;;;;;1131:198:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9228:1354:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9228:1354:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;947:22:0;;;;;;;;;;;;;:::o;2224:21:3:-;;;;:::o;1251:34:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4507:111:17:-;4573:38;4584:4;4590:6;4608:1;4598:12;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4598:12:17;;;;4573:10;:38::i;:::-;4507:111;;:::o;1935:32:3:-;;;;:::o;1834:39::-;;;;;;;;;;;;;:::o;2284:29::-;;;;;;;;;;;;;:::o;4930:528:13:-;5034:20;:18;:20::i;:::-;5020:34;;:10;:34;;;5012:43;;;;;;;;5073:13;:22;5087:7;5073:22;;;;;;;;;;;;;;;;;;;;;;;;;;;5065:31;;;;;;;;5168:6;5145:20;:29;;;;;;;;;;;;:::i;:::-;;5196:38;5205:6;5213:20;;5196:8;:38::i;:::-;5184:9;:50;;;;5249:24;5266:6;5249:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5249:24:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5283:17;:15;:17::i;:::-;5384:13;:22;5398:7;5384:22;;;;;;;;;;;;;;;;;;5377:29;;;;;;;;;;;4930:528;;;:::o;2319:50:3:-;;;;;;;;;;;;;:::o;1062:48:13:-;1104:6;1062:48;:::o;12629:168:3:-;12711:3;12733:57;12780:9;12733:13;:46;;:57;;;;:::i;:::-;12726:64;;12629:168;;;:::o;992:32:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1030:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1801:27:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4051:599:13:-;4112:9;4441:15;4124:57;4142:18;4124:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1104:6;4124:17;:57::i;:::-;4112:69;;4212:4;4199:9;:17;;4191:26;;;;;;;;4459:114;4487:18;4459:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4519:12;4459:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1104:6;4459:14;:114::i;:::-;4441:132;;4602:1;4591:12;;:7;:12;;;;;4583:21;;;;;;;;4639:4;4614:13;:22;4628:7;4614:22;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;4051:599;;:::o;1734:32:3:-;;;;;;;;;;;;;:::o;5771:2986::-;5987:13;6297:27;;:::i;:::-;7033:16;7591:17;7622;7759;7808:16;6024:30;;;;;;;;;;;:44;;;;;6059:9;;;;;;;;;;;6058:10;6024:44;6016:53;;;;;;;;6129:1;6117:8;:13;;:31;;;;;6147:1;6134:9;:14;;6117:31;:65;;;;;6152:30;6172:9;6152:8;:19;;:30;;;;:::i;:::-;6117:65;6109:74;;;;;;;;6234:9;;;;;;;;;;;:34;;;6269:4;6275:10;6234:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6234:52:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6234:52:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6234:52:3;;;;;;;;;;;;;;;;6226:61;;;;;;;;6327:72;6353:14;6327:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6369:19;6327:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6390:8;6335:4;6327:25;;;;:72;;;;;;:::i;:::-;6297:102;;6417:9;;;;;;;;;;;:34;;;6452:4;6458:5;:11;;;6417:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6417:53:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6417:53:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6417:53:3;;;;;;;;;;;;;;;;6409:62;;;;;;;;6573:1;6550:25;;:5;:11;;;:25;;;:54;;;;6594:10;6579:25;;:5;:11;;;:25;;;6550:54;6542:63;;;;;;;;6681:1;6658:25;;:5;:11;;;:25;;;;:54;;;;;6702:10;6687:25;;:5;:11;;;:25;;;;6658:54;6650:63;;;;;;;;6744:5;:11;;;:28;;;;;;6790:5;:15;;;6823:1;6842;6861;6744:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6744:128:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6744:128:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6744:128:3;;;;;;;;;;;;;;;;6723:150;;;;;;;;6896:5;:25;;;6889:3;:32;;6885:138;;;6974:5;:15;;;6942:48;;;6948:24;6942:48;;;;;;;;;;;;;;;;;;7011:1;7004:8;;;;6885:138;7052:68;7070:49;7103:5;:15;;;7070:32;:49::i;:::-;7052:8;:17;;:68;;;;:::i;:::-;7033:87;;7150:1;7134:12;:17;7130:165;;;7246:5;:15;;;7217:45;;;7223:21;7217:45;;;;;;;;;;;;;;;;;;7283:1;7276:8;;;;7130:165;7317:39;7332:12;7346:9;7317:14;:39::i;:::-;7305:51;;7366:20;;;;;;;;;;;:36;;;7416:5;:11;;;7441:10;7465:9;7488:5;:11;;;7366:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7366:143:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7366:143:3;;;;7519:61;7553:5;:15;;;7570:9;7519:13;:33;;:61;;;;;:::i;:::-;7611:1;7591:21;;7642:1;7622:21;;7688:1;7658:32;;:5;:18;;;:32;;;;7654:823;;;7779:15;:9;:13;:15::i;:::-;7759:35;;7827:15;:9;:13;:15::i;:::-;7808:34;;7877:1;7860:5;:14;;;:18;7856:299;;;7913:58;7945:12;7959:11;7913:5;:14;;;:31;;:58;;;;;:::i;:::-;7898:73;;7989:151;8037:5;:11;;;8070:5;:18;;;8110:12;7989:9;;;;;;;;;;;:26;;;;:151;;;;;;:::i;:::-;7856:299;8190:1;8173:5;:14;;;:18;8169:298;;;8226:58;8258:12;8272:11;8226:5;:14;;;:31;;:58;;;;;:::i;:::-;8211:73;;8302:150;8350:10;8382:5;:18;;;8422:12;8302:9;;;;;;;;;;;:26;;;;:150;;;;;;:::i;:::-;8169:298;7654:823;8566:5;:18;;;8492:231;;8542:10;8492:231;;8517:5;:11;;;8492:231;;;8598:9;8621:12;8647;8673:5;:11;;;8698:5;:15;;;8492:231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8741:9;8734:16;;5771:2986;;;;;;;;;;;;;;;;:::o;2394:45::-;;;;;;;;;;;;;:::o;1879:21::-;;;;:::o;2172:22::-;;;;:::o;10874:540::-;14315:31;;;;;;;;;;;14301:45;;:10;:45;;;14293:54;;;;;;;;10977:30;;;;;;;;;;;10976:31;10968:40;;;;;;;;11088:1;11065:25;;:11;:25;;;;11057:34;;;;;;;;11189:11;11145:20;;:56;;;;;;;;;;;;;;;;;;11267:4;11219:53;;:20;;;;;;;;;;;:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11219:36:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11219:36:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11219:36:3;;;;;;;;;;;;;;;;:53;;;11211:62;;;;;;;;11349:11;11316:30;;:44;;;;;;;;;;;;;;;;;;11403:4;11370:30;;:37;;;;;;;;;;;;;;;;;;10874:540;:::o;1906:23::-;;;;:::o;2047:26::-;;;;:::o;1682:46::-;;;;;;;;;;;;;:::o;2251:27::-;;;;:::o;1131:198:0:-;1390:7;;;;;;;;;;;1376:21;;:10;:21;;;1368:30;;;;;;;;1235:1;1213:24;;:10;:24;;;;1205:33;;;;;;;;1281:10;1253:39;;1272:7;;;;;;;;;;;1253:39;;;;;;;;;;;;1312:10;1302:7;;:20;;;;;;;;;;;;;;;;;;1131:198;:::o;9228:1354:3:-;9392:16;9569:27;;:::i;:::-;9944:16;9447:1;9432:11;:16;;:52;;;;;9452:32;9475:8;9452:11;:22;;:32;;;;:::i;:::-;9432:52;9424:61;;;;;;;;9549:9;;;;;;;;;;;9548:10;9540:19;;;;;;;;9599:72;9625:14;9599:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9641:19;9599:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9662:8;9607:4;9599:25;;;;:72;;;;;;:::i;:::-;9569:102;;9704:10;9689:25;;:5;:11;;;:25;;;9681:34;;;;;;;;9807:5;:25;;;9800:3;:32;;9796:138;;;9885:5;:15;;;9853:48;;;9859:24;9853:48;;;;;;;;;;;;;;;;;;9922:1;9915:8;;;;9796:138;9963:68;9981:49;10014:5;:15;;;9981:32;:49::i;:::-;9963:8;:17;;:68;;;;:::i;:::-;9944:87;;10061:1;10045:12;:17;10041:173;;;10165:5;:15;;;10136:45;;;10142:21;10136:45;;;;;;;;;;;;;;;;;;10202:1;10195:8;;;;10041:173;10239:41;10254:11;10267:12;10239:14;:41::i;:::-;10224:56;;10327:67;10364:5;:15;;;10381:12;10327:13;:36;;:67;;;;;:::i;:::-;10520:5;:15;;;10409:136;;;10462:5;:18;;;10409:136;;10437:5;:11;;;10409:136;;;10494:12;10409:136;;;;;;;;;;;;;;;;;;10563:12;10556:19;;9228:1354;;;;;;;;;:::o;6485:112:17:-;6545:7;2254:1;2248:3;;;;;;;;;;;2240:15;;;2239:49;;;;2286:1;2259:25;2279:3;;;;;;;;;;;2259:11;:25::i;:::-;:28;2239:49;2236:101;;;2302:35;1970:1;2302:19;:35::i;:::-;;2236:101;2372:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2372:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2372:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2372:16:17;;;;;;;;;;;;;;;;2351:37;;2359:8;;;;;;;;;;;2351:37;;;;2348:92;;;2423:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2423:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2423:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2423:16:17;;;;;;;;;;;;;;;;2402:8;;:38;;;;;;;;;;;;;;;;;;2348:92;6570:8;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6570:20:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6570:20:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6570:20:17;;;;;;;;;;;;;;;;6563:27;;6485:112;:::o;7013:593::-;7074:4;7090:20;7132:9;7155:13;7191:6;7119:2;7090:32;;7144:1;7132:13;;7171:5;7155:21;;7198:1;7191:8;;7186:357;7203:7;:14;7201:1;:16;7186:357;;;7256:2;7242:16;;:7;7250:1;7242:10;;;;;;;;;;;;;;;;;;;;:16;;;;;7241:38;;;;;7276:2;7262:16;;:7;7270:1;7262:10;;;;;;;;;;;;;;;;;;;;:16;;;;;7241:38;7237:295;;;7302:8;7298:102;;;7342:1;7336:2;:7;7332:49;;;7345:5;;7332:49;7377:4;;;;;;;;7298:102;7425:2;7417:10;;;;7472:2;7458:7;7466:1;7458:10;;;;;;;;;;;;;;;;;;;;7453:16;;;:21;7445:29;;;;7237:295;;;7513:2;7499:16;;:7;7507:1;7499:10;;;;;;;;;;;;;;;;;;;;:16;;;;7495:37;;;7528:4;7517:15;;7495:37;7237:295;7219:3;;;;;;;7186:357;;;7561:1;7556:2;:6;7552:26;;;7576:2;7572;:6;7564:14;;;;7552:26;7595:4;7588:11;;7013:593;;;;;;;;:::o;13014:851:3:-;13126:23;13064:9;;;;;;;;;;;13060:56;;;13109:7;;13060:56;13169:10;;13163:3;:16;13159:616;;;13288:4;13276:9;;:16;;;;;;;;;;;;;;;;;;13384:9;;13363:30;;13159:616;;;13427:9;;13414;;:22;;13410:365;;;13528:4;13516:9;;:16;;;;;;;;;;;;;;;;;;13567:9;;13546:30;;13410:365;;;13610:11;;13597:9;;:24;;13593:182;;;13714:4;13702:9;;:16;;;;;;;;;;;;;;;;;;13753:11;;13732:32;;13593:182;13410:365;13159:616;13789:9;;;;;;;;;;;13785:74;;;13814:34;13829:18;13814:14;:34::i;:::-;13785:74;13014:851;;:::o;1449:236:10:-;1583:3;1609:69;1644:4;:22;;:33;1667:9;1644:33;;;;;;;;;;;;;;;;;;1609:4;:19;;:30;1629:9;1609:30;;;;;;;;;;;;;;;;;;:34;;:69;;;;:::i;:::-;1602:76;;1449:236;;;;:::o;4915:159:17:-;5006:4;2254:1;2248:3;;;;;;;;;;;2240:15;;;2239:49;;;;2286:1;2259:25;2279:3;;;;;;;;;;;2259:11;:25::i;:::-;:28;2239:49;2236:101;;;2302:35;1970:1;2302:19;:35::i;:::-;;2236:101;2372:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2372:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2372:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2372:16:17;;;;;;;;;;;;;;;;2351:37;;2359:8;;;;;;;;;;;2351:37;;;;2348:92;;;2423:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2423:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2423:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2423:16:17;;;;;;;;;;;;;;;;2402:8;;:38;;;;;;;;;;;;;;;;;;2348:92;5028:8;;;;;;;;;;;:17;;;5046:10;5058:8;5028:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5028:39:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5028:39:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5028:39:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5028:39:17;;;;;;;;;;;;;;;;5021:46;;4915:159;;;;:::o;6120:359::-;6220:10;6241;2254:1;2248:3;;;;;;;;;;;2240:15;;;2239:49;;;;2286:1;2259:25;2279:3;;;;;;;;;;;2259:11;:25::i;:::-;:28;2239:49;2236:101;;;2302:35;1970:1;2302:19;:35::i;:::-;;2236:101;2372:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2372:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2372:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2372:16:17;;;;;;;;;;;;;;;;2351:37;;2359:8;;;;;;;;;;;2351:37;;;;2348:92;;;2423:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2423:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2423:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2423:16:17;;;;;;;;;;;;;;;;2402:8;;:38;;;;;;;;;;;;;;;;;;2348:92;6254:8;;;;;;;;;;;:17;;;6272:10;6284:8;6254:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6254:39:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6254:39:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6254:39:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6254:39:17;;;;;;;;;;;;;;;;6241:52;;6402:8;;;;;;;;;;;:27;;;6436:5;6443:1;6446:10;6458:3;6463:8;6402:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6402:70:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6402:70:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6402:70:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6402:70:17;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6402:70:17;;;;;;;;;;;;;;;;6395:77;;6120:359;;;;;;:::o;2916:109:9:-;2973:4;3003:1;2998;:6;:19;;;;3016:1;3012;3008;:5;:9;2998:19;2989:29;;2916:109;;;;:::o;3844:752:10:-;4021:11;;:::i;:::-;4062:14;4077:1;4062:17;;;;;;;;;;;;;4048:5;:11;;:31;;;;;;;;;;;4103:14;4118:1;4103:17;;;;;;;;;;;;;4089:5;:11;;:31;;;;;;;;;;;4151:14;4166:1;4151:17;;;;;;;;;;;;;4130:5;:18;;:38;;;;;;;;;;;4195:19;4215:1;4195:22;;;;;;;;;;;;;4178:5;:14;;:39;;;;;4244:19;4264:1;4244:22;;;;;;;;;;;;;4227:5;:14;;:39;;;;;4290:19;4310:1;4290:22;;;;;;;;;;;;;4276:5;:11;;:36;;;;;4350:19;4370:1;4350:22;;;;;;;;;;;;;4322:5;:25;;:50;;;;;4394:8;4382:5;:9;;:20;;;;;4430:137;4459:15;4488:14;4516:19;4549:8;4430:15;:137::i;:::-;4412:5;:15;;:155;;;;;;;;;;;;;4584:5;4577:12;;3844:752;;;;;;:::o;2354:122:9:-;2415:6;2440:10;2444:1;2448;2447:2;;2440:3;:10::i;:::-;2433:17;;2354:122;;;;:::o;3537:115::-;3596:6;3630;3634:1;3630:3;:6::i;:::-;3621;3625:1;3621:3;:6::i;:::-;:15;:24;;3644:1;3621:24;;;3640:1;3621:24;3614:31;;3537:115;;;;:::o;4802:195:10:-;4945:45;4980:9;4945:4;:19;;:30;4965:9;4945:30;;;;;;;;;;;;;;;;;;:34;;:45;;;;:::i;:::-;4912:4;:19;;:30;4932:9;4912:30;;;;;;;;;;;;;;;;;:78;;;;4802:195;;;:::o;3139:167:9:-;3185:7;3212:1;3208;:5;3204:96;;;3242:1;3241:2;;3229:15;;;;3204:96;3287:1;3275:14;;3139:167;;;;:::o;1037:203::-;1167:7;1222:11;1197:22;1206:1;1209:9;1197:8;:22::i;:::-;:36;;;;;;;;1190:43;;1037:203;;;;;:::o;492:169:30:-;620:5;:18;;;639:4;645:2;649:5;620:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;620:35:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;620:35:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;620:35:30;;;;;;;;;;;;;;;;613:43;;;;;;492:169;;;;:::o;5191:210:10:-;5343:51;5381:12;5343:4;:22;;:33;5366:9;5343:33;;;;;;;;;;;;;;;;;;:37;;:51;;;;:::i;:::-;5307:4;:22;;:33;5330:9;5307:33;;;;;;;;;;;;;;;;;:87;;;;5191:210;;;:::o;6858:150:17:-;6920:10;6986:5;6974:18;6965:27;;6951:51;;;:::o;2564:183::-;2627:4;2647:21;:19;:21::i;:::-;2640:28;;2564:183;;;:::o;14020:166:3:-;14107:20;14089:15;:38;;;;14142:37;14158:20;14142:37;;;;;;;;;;;;;;;;;;14020:166;:::o;1673:509:9:-;1729:6;1747:8;1762:1;1758;:5;1747:16;;1778;1789:1;1792;1778:10;:16::i;:::-;1777:17;1773:126;;;1887:1;1880:8;;;;1773:126;1918:1;1913;:6;;1909:249;;;2022:1;856:3;850:1;842:17;;;;839:22;2009:14;2004:1;:19;;1997:27;;;;;;1909:249;;;2145:1;792:3;786:1;778:17;;;;2132:14;2127:1;:19;;2120:27;;;;;;1909:249;2174:1;2167:8;;1673:509;;;;;;:::o;2115:643:10:-;2294:7;2381:15;2414:14;2429:1;2414:17;;;;;;;;;;;;;2449:14;2464:1;2449:17;;;;;;;;;;;;;2484:14;2499:1;2484:17;;;;;;;;;;;;;2519:19;2539:1;2519:22;;;;;;;;;;;;;2559:19;2579:1;2559:22;;;;;;;;;;;;;2599:19;2619:1;2599:22;;;;;;;;;;;;;2639:19;2659:1;2639:22;;;;;;;;;;;;;2679:19;2699:1;2679:22;;;;;;;;;;;;;2719:8;2347:394;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2347:394:10;;;2324:427;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;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;;;2324:427:10;;;;;;;;;;;;;;;;2317:434;;2115:643;;;;;;:::o;869:162:9:-;932:7;951:9;967:1;963;:5;951:17;;990:1;985;:6;:20;;;;1004:1;999;995;:5;;;;;;;;:10;985:20;978:28;;;;;;1023:1;1016:8;;869:162;;;;;:::o;2752:1749:17:-;2800:4;2875:1;2819:55;2831:42;2819:11;:55::i;:::-;:57;2815:245;;;2929:42;2901:3;;:71;;;;;;;;;;;;;;;;;;2986:38;;;;;;;;;;;;;;;;;;;:23;:38::i;:::-;3045:4;3038:11;;;;2815:245;3129:1;3073:55;3085:42;3073:11;:55::i;:::-;:57;3069:254;;;3191:42;3163:3;;:71;;;;;;;;;;;;;;;;;;3248:39;;;;;;;;;;;;;;;;;;;:23;:39::i;:::-;3308:4;3301:11;;;;3069:254;3392:1;3336:55;3348:42;3336:11;:55::i;:::-;:57;3332:249;;;3452:42;3424:3;;:71;;;;;;;;;;;;;;;;;;3509:36;;;;;;;;;;;;;;;;;;;:23;:36::i;:::-;3566:4;3559:11;;;;3332:249;3650:1;3594:55;3606:42;3594:11;:55::i;:::-;:57;3590:253;;;3712:42;3684:3;;:71;;;;;;;;;;;;;;;;;;3769:38;;;;;;;;;;;;;;;;;;;:23;:38::i;:::-;3828:4;3821:11;;;;3590:253;3912:1;3856:55;3868:42;3856:11;:55::i;:::-;:57;3852:201;;;3974:42;3946:3;;:71;;;;;;;;;;;;;;;;;;4038:4;4031:11;;;;3852:201;4122:1;4066:55;4078:42;4066:11;:55::i;:::-;:57;4062:200;;;4183:42;4155:3;;:71;;;;;;;;;;;;;;;;;;4247:4;4240:11;;;;4062:200;4331:1;4275:55;4287:42;4275:11;:55::i;:::-;:57;4271:202;;;4394:42;4366:3;;:71;;;;;;;;;;;;;;;;;;4458:4;4451:11;;;;4271:202;4489:5;4482:12;;2752:1749;;:::o;7645:118::-;7743:13;7719:21;:37;;;;;;;;;;;;:::i;:::-;;7645:118;:::o;875:5632:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "/*\n Copyright 2017-2018 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity ^0.4.24;\n\nimport \"./oraclizeAPI.sol\";\nimport \"../libraries/MathLib.sol\";\nimport \"../MarketContract.sol\";\n\n\n/// @title MarketContract first example of a MarketProtocol contract using Oraclize services\n/// @author Phil Elsasser \ncontract MarketContractOraclize is MarketContract, usingOraclize {\n using MathLib for uint;\n\n // constants\n string public ORACLE_DATA_SOURCE;\n string public ORACLE_QUERY;\n uint constant public QUERY_CALLBACK_GAS = 150000;\n //uint constant public QUERY_CALLBACK_GAS_PRICE = 20000000000 wei; // 20 gwei - need to make this dynamic!\n\n // state variables\n string public lastPriceQueryResult;\n mapping(bytes32 => bool) validQueryIDs;\n\n /// @param contractName viewable name of this contract (BTC/ETH, LTC/ETH, etc)\n /// @param creatorAddress address of the person creating the contract\n /// @param marketTokenAddress address of our member token\n /// @param collateralTokenAddress address of the ERC20 token that will be used for collateral and pricing\n /// @param collateralPoolFactoryAddress address of the factory creating the collateral pools\n /// @param contractSpecs array of unsigned integers including:\n /// floorPrice minimum tradeable price of this contract, contract enters settlement if breached\n /// capPrice maximum tradeable price of this contract, contract enters settlement if breached\n /// priceDecimalPlaces number of decimal places to convert our queried price from a floating point to\n /// an integer\n /// qtyMultiplier multiply traded qty by this value from base units of collateral token.\n /// expirationTimeStamp - seconds from epoch that this contract expires and enters settlement\n /// @param oracleDataSource a data-source such as \"URL\", \"WolframAlpha\", \"IPFS\"\n /// see http://docs.oraclize.it/#ethereum-quick-start-simple-query\n /// @param oracleQuery see http://docs.oraclize.it/#ethereum-quick-start-simple-query for examples\n constructor(\n string contractName,\n address creatorAddress,\n address marketTokenAddress,\n address collateralTokenAddress,\n address collateralPoolFactoryAddress,\n uint[5] contractSpecs,\n string oracleDataSource,\n string oracleQuery\n ) MarketContract(\n contractName,\n creatorAddress,\n marketTokenAddress,\n collateralTokenAddress,\n collateralPoolFactoryAddress,\n contractSpecs\n ) public\n {\n oraclize_setProof(proofType_TLSNotary | proofStorage_IPFS);\n //oraclize_setCustomGasPrice(QUERY_CALLBACK_GAS_PRICE); //TODO: allow this to be changed by creator.\n ORACLE_DATA_SOURCE = oracleDataSource;\n ORACLE_QUERY = oracleQuery;\n\n // Future timestamp must be within 60 days from now.\n // https://docs.oraclize.it/#ethereum-quick-start-schedule-a-query-in-the-future\n require(EXPIRATION - now <= 60 days);\n queryOracle(); // Schedule a call to oracle at contract expiration time.\n }\n\n /// @notice allows a user to request an extra query to oracle in order to push the contract into\n /// settlement. A user may call this as many times as they like, since they are the ones paying for\n /// the call to our oracle and post processing. This is useful for both a failsafe and as a way to\n /// settle a contract early if a price cap or floor has been breached.\n function requestEarlySettlement() external payable {\n uint cost = oraclize_getPrice(ORACLE_DATA_SOURCE, QUERY_CALLBACK_GAS);\n require(msg.value >= cost); // user must pay enough to cover query and callback\n // create immediate query, we must make sure to store this one separately, so\n // we do not schedule recursive callbacks when the query completes.\n bytes32 queryId = oraclize_query(\n ORACLE_DATA_SOURCE,\n ORACLE_QUERY,\n QUERY_CALLBACK_GAS\n );\n require(queryId != 0);\n validQueryIDs[queryId] = true;\n }\n\n /*\n // PUBLIC METHODS\n */\n\n /// @notice only public for callbacks from oraclize, do not call\n /// @param queryID of the returning query, this should match our own internal mapping\n /// @param result query to be processed\n /// @param proof result proof\n function __callback(bytes32 queryID, string result, bytes proof) public {\n require(msg.sender == oraclize_cbAddress());\n require(validQueryIDs[queryID]); // At expiration or early settlement.\n lastPriceQueryResult = result;\n lastPrice = parseInt(result, PRICE_DECIMAL_PLACES);\n emit UpdatedLastPrice(result);\n checkSettlement(); // Verify settlement at expiration or requested early settlement.\n delete validQueryIDs[queryID];\n proof; // silence compiler warnings\n }\n\n /*\n // PRIVATE METHODS\n */\n\n /// @dev call to oraclize to set up our query and record its hash.\n function queryOracle() private {\n // Require that sufficient funds are available to pay for the query.\n // require(oraclize_getPrice(ORACLE_DATA_SOURCE, QUERY_CALLBACK_GAS) < this.balance);\n // NOTE: Currently the first oracle query call to oraclize.it is free. Since our\n // expiration query will always be the first, there is no needed pre-funding amount\n // to create this query. When we go to the centralized query hub - this will change\n // due to the fact that the address creating the query will always be the query hub.\n // will have to do the analysis to see which is cheaper, free queries, or lower deployment\n // gas costs\n bytes32 queryId = oraclize_query(\n EXPIRATION,\n ORACLE_DATA_SOURCE,\n ORACLE_QUERY,\n QUERY_CALLBACK_GAS\n );\n require(queryId != 0);\n validQueryIDs[queryId] = true;\n }\n}", - "sourcePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", + "sourcePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", "ast": { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", "exportedSymbols": { "MarketContractOraclize": [ 2949 @@ -666,7 +666,7 @@ "src": "608:24:13" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/oraclizeAPI.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/oraclizeAPI.sol", "file": "./oraclizeAPI.sol", "id": 2759, "nodeType": "ImportDirective", @@ -677,7 +677,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/MathLib.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/MathLib.sol", "file": "../libraries/MathLib.sol", "id": 2760, "nodeType": "ImportDirective", @@ -688,7 +688,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContract.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContract.sol", "file": "../MarketContract.sol", "id": 2761, "nodeType": "ImportDirective", @@ -3187,7 +3187,7 @@ "src": "608:5899:13" }, "legacyAST": { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", "exportedSymbols": { "MarketContractOraclize": [ 2949 @@ -3208,7 +3208,7 @@ "src": "608:24:13" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/oraclizeAPI.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/oraclizeAPI.sol", "file": "./oraclizeAPI.sol", "id": 2759, "nodeType": "ImportDirective", @@ -3219,7 +3219,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/MathLib.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/MathLib.sol", "file": "../libraries/MathLib.sol", "id": 2760, "nodeType": "ImportDirective", @@ -3230,7 +3230,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContract.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContract.sol", "file": "../MarketContract.sol", "id": 2761, "nodeType": "ImportDirective", @@ -5732,7 +5732,14 @@ "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, - "networks": {}, + "networks": { + "4": { + "events": {}, + "links": { + "OrderLib": "0x5374c9b5d0d60e7f58063e02e6fd905ff94c4fb6" + } + } + }, "schemaVersion": "2.0.1", - "updatedAt": "2018-07-27T19:00:06.643Z" + "updatedAt": "2018-09-07T17:31:18.153Z" } \ No newline at end of file diff --git a/build/contracts/MarketContractRegistry.json b/build/contracts/MarketContractRegistry.json index 409b8bb..7ddc61d 100644 --- a/build/contracts/MarketContractRegistry.json +++ b/build/contracts/MarketContractRegistry.json @@ -193,14 +193,14 @@ "type": "function" } ], - "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d26806100536000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318c0c695146100935780638da5cb5b146100d65780639244f4961461012d578063a051d9c314610170578063ad23de63146101b3578063c6f5d91f1461020e578063d8fbbf311461027a578063f2fde38b146102df575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610322565b005b3480156100e257600080fd5b506100eb610474565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013957600080fd5b5061016e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610499565b005b34801561017c57600080fd5b506101b1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a4565b005b3480156101bf57600080fd5b506101f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107f5565b604051808215151515815260200191505060405180910390f35b34801561021a57600080fd5b5061022361084b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561026657808201518184015260208101905061024b565b505050509050019250505060405180910390f35b34801561028657600080fd5b506102c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108d9565b604051808215151515815260200191505060405180910390f35b3480156102eb57600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b54565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561037d57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156103d657600080fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f960c6a67a1f0f46ddffd138f2b7f44cbc573d0e0a073363b287a257b121dc48a60405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061053d5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b151561054857600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156105a157600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f534d18c8ff24ba5980906d732f3075704749427353734fbbf05d50485643b12460405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ff57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561075757600080fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f5d6ac55db628f137c53a554c300a684dc6b3db9d8f24e9611ea5e84c282d177d60405160405180910390a250565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b606060028054806020026020016040519081016040528092919081815260200182805480156108cf57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610885575b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561093657600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561098e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166002838154811015156109b457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a0157600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002600160028054905003815481101515610a7057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600283815481101515610aaa57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610b0a9190610ca9565b508273ffffffffffffffffffffffffffffffffffffffff167f535611fb62fa2a833988f283b779e417e996813e44046f521d76c17b5943b08c60405160405180910390a292915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610baf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610beb57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b815481835581811115610cd057818360005260206000209182019101610ccf9190610cd5565b5b505050565b610cf791905b80821115610cf3576000816000905550600101610cdb565b5090565b905600a165627a7a72305820b35027cbb3799cdb2671011612d1bc806ad0d774ddaaea7fb060182fb7903d7a0029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318c0c695146100935780638da5cb5b146100d65780639244f4961461012d578063a051d9c314610170578063ad23de63146101b3578063c6f5d91f1461020e578063d8fbbf311461027a578063f2fde38b146102df575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610322565b005b3480156100e257600080fd5b506100eb610474565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013957600080fd5b5061016e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610499565b005b34801561017c57600080fd5b506101b1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a4565b005b3480156101bf57600080fd5b506101f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107f5565b604051808215151515815260200191505060405180910390f35b34801561021a57600080fd5b5061022361084b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561026657808201518184015260208101905061024b565b505050509050019250505060405180910390f35b34801561028657600080fd5b506102c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108d9565b604051808215151515815260200191505060405180910390f35b3480156102eb57600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b54565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561037d57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156103d657600080fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f960c6a67a1f0f46ddffd138f2b7f44cbc573d0e0a073363b287a257b121dc48a60405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061053d5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b151561054857600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156105a157600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f534d18c8ff24ba5980906d732f3075704749427353734fbbf05d50485643b12460405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ff57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561075757600080fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f5d6ac55db628f137c53a554c300a684dc6b3db9d8f24e9611ea5e84c282d177d60405160405180910390a250565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b606060028054806020026020016040519081016040528092919081815260200182805480156108cf57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610885575b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561093657600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561098e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166002838154811015156109b457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a0157600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002600160028054905003815481101515610a7057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600283815481101515610aaa57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610b0a9190610ca9565b508273ffffffffffffffffffffffffffffffffffffffff167f535611fb62fa2a833988f283b779e417e996813e44046f521d76c17b5943b08c60405160405180910390a292915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610baf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610beb57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b815481835581811115610cd057818360005260206000209182019101610ccf9190610cd5565b5b505050565b610cf791905b80821115610cf3576000816000905550600101610cdb565b5090565b905600a165627a7a72305820b35027cbb3799cdb2671011612d1bc806ad0d774ddaaea7fb060182fb7903d7a0029", + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d26806100536000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318c0c695146100935780638da5cb5b146100d65780639244f4961461012d578063a051d9c314610170578063ad23de63146101b3578063c6f5d91f1461020e578063d8fbbf311461027a578063f2fde38b146102df575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610322565b005b3480156100e257600080fd5b506100eb610474565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013957600080fd5b5061016e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610499565b005b34801561017c57600080fd5b506101b1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a4565b005b3480156101bf57600080fd5b506101f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107f5565b604051808215151515815260200191505060405180910390f35b34801561021a57600080fd5b5061022361084b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561026657808201518184015260208101905061024b565b505050509050019250505060405180910390f35b34801561028657600080fd5b506102c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108d9565b604051808215151515815260200191505060405180910390f35b3480156102eb57600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b54565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561037d57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156103d657600080fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f960c6a67a1f0f46ddffd138f2b7f44cbc573d0e0a073363b287a257b121dc48a60405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061053d5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b151561054857600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156105a157600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f534d18c8ff24ba5980906d732f3075704749427353734fbbf05d50485643b12460405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ff57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561075757600080fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f5d6ac55db628f137c53a554c300a684dc6b3db9d8f24e9611ea5e84c282d177d60405160405180910390a250565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b606060028054806020026020016040519081016040528092919081815260200182805480156108cf57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610885575b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561093657600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561098e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166002838154811015156109b457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a0157600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002600160028054905003815481101515610a7057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600283815481101515610aaa57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610b0a9190610ca9565b508273ffffffffffffffffffffffffffffffffffffffff167f535611fb62fa2a833988f283b779e417e996813e44046f521d76c17b5943b08c60405160405180910390a292915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610baf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610beb57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b815481835581811115610cd057818360005260206000209182019101610ccf9190610cd5565b5b505050565b610cf791905b80821115610cf3576000816000905550600101610cdb565b5090565b905600a165627a7a72305820616ebb82a9a852784f79b2b0e1e2b1c725ed3452f03a7e21dc5e16bbe8ee4a100029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318c0c695146100935780638da5cb5b146100d65780639244f4961461012d578063a051d9c314610170578063ad23de63146101b3578063c6f5d91f1461020e578063d8fbbf311461027a578063f2fde38b146102df575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610322565b005b3480156100e257600080fd5b506100eb610474565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013957600080fd5b5061016e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610499565b005b34801561017c57600080fd5b506101b1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a4565b005b3480156101bf57600080fd5b506101f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107f5565b604051808215151515815260200191505060405180910390f35b34801561021a57600080fd5b5061022361084b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561026657808201518184015260208101905061024b565b505050509050019250505060405180910390f35b34801561028657600080fd5b506102c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108d9565b604051808215151515815260200191505060405180910390f35b3480156102eb57600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b54565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561037d57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156103d657600080fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f960c6a67a1f0f46ddffd138f2b7f44cbc573d0e0a073363b287a257b121dc48a60405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061053d5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b151561054857600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156105a157600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f534d18c8ff24ba5980906d732f3075704749427353734fbbf05d50485643b12460405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ff57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561075757600080fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f5d6ac55db628f137c53a554c300a684dc6b3db9d8f24e9611ea5e84c282d177d60405160405180910390a250565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b606060028054806020026020016040519081016040528092919081815260200182805480156108cf57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610885575b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561093657600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561098e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166002838154811015156109b457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a0157600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002600160028054905003815481101515610a7057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600283815481101515610aaa57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610b0a9190610ca9565b508273ffffffffffffffffffffffffffffffffffffffff167f535611fb62fa2a833988f283b779e417e996813e44046f521d76c17b5943b08c60405160405180910390a292915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610baf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610beb57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b815481835581811115610cd057818360005260206000209182019101610ccf9190610cd5565b5b505050565b610cf791905b80821115610cf3576000816000905550600101610cdb565b5090565b905600a165627a7a72305820616ebb82a9a852784f79b2b0e1e2b1c725ed3452f03a7e21dc5e16bbe8ee4a100029", "sourceMap": "833:3508:4:-;;;509:10:25;501:5;;:18;;;;;;;;;;;;;;;;;;833:3508:4;;;;;;", "deployedSourceMap": "833:3508:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3713:242;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3713:242:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;3151:349:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3151:349:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;4092:247;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4092:247:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1605:138:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1836:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1836:105:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1836:105:4;;;;;;;;;;;;;;;;;2284:608;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2284:608:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;832:174:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;832:174:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;3713:242:4;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;3802:23:4;:39;3826:14;3802:39;;;;;;;;;;;;;;;;;;;;;;;;;3801:40;3793:49;;;;;;;;3894:4;3852:23;:39;3876:14;3852:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;3933:14;3913:35;;;;;;;;;;;;3713:242;:::o;238:20:25:-;;;;;;;;;;;;;:::o;3151:349:4:-;3248:5;;;;;;;;;;;3234:19;;:10;:19;;;:58;;;;3257:23;:35;3281:10;3257:35;;;;;;;;;;;;;;;;;;;;;;;;;3234:58;3226:67;;;;;;;;3312:13;:30;3326:15;3312:30;;;;;;;;;;;;;;;;;;;;;;;;;3311:31;3303:40;;;;;;;;3386:4;3353:13;:30;3367:15;3353:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;3400:16;3422:15;3400:38;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3400:38:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3477:15;3453:40;;;;;;;;;;;;3151:349;:::o;4092:247::-;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;4183:23:4;:39;4207:14;4183:39;;;;;;;;;;;;;;;;;;;;;;;;;4175:48;;;;;;;;4275:5;4233:23;:39;4257:14;4233:39;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;4317:14;4295:37;;;;;;;;;;;;4092:247;:::o;1605:138::-;1683:4;1706:13;:30;1720:15;1706:30;;;;;;;;;;;;;;;;;;;;;;;;;1699:37;;1605:138;;;:::o;1836:105::-;1890:9;1918:16;1911:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1836:105;:::o;2284:608::-;2417:4;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;2445:13:4;:30;2459:15;2445:30;;;;;;;;;;;;;;;;;;;;;;;;;2437:39;;;;;;;;2530:15;2494:51;;:16;2511:14;2494:32;;;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;2486:60;;;;;;;;2589:5;2556:13;:30;2570:15;2556:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;2743:16;2786:1;2760:16;:23;;;;:27;2743:45;;;;;;;;;;;;;;;;;;;;;;;;;;;2708:16;2725:14;2708:32;;;;;;;;;;;;;;;;;;:80;;;;;;;;;;;;;;;;;;2825:1;2798:16;:28;;;;;;;;;;;;;;:::i;:::-;;2869:15;2841:44;;;;;;;;;;;;2284:608;;;;:::o;832:174:25:-;653:5;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;928:1;908:22;;:8;:22;;;;900:31;;;;;;;;970:8;942:37;;963:5;;;;;;;;;;;942:37;;;;;;;;;;;;993:8;985:5;;:16;;;;;;;;;;;;;;;;;;832:174;:::o;833:3508:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "/*\n Copyright 2017-2018 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"./MarketContractRegistryInterface.sol\";\n\n\n/// @title MarketContractRegistry\n/// @author Phil Elsasser \ncontract MarketContractRegistry is Ownable, MarketContractRegistryInterface {\n\n mapping(address => bool) isWhiteListed;\n address[] addressWhiteList; // record of currently deployed addresses;\n mapping(address => bool) factoryAddressWhiteList; // record of authorized factories\n\n // events\n event AddressAddedToWhitelist(address indexed contractAddress);\n event AddressRemovedFromWhitelist(address indexed contractAddress);\n event FactoryAddressAdded(address indexed factoryAddress);\n event FactoryAddressRemoved(address indexed factoryAddress);\n\n /*\n // External Methods\n */\n\n /// @notice determines if an address is a valid MarketContract\n /// @return false if the address is not white listed.\n function isAddressWhiteListed(address contractAddress) external view returns (bool) {\n return isWhiteListed[contractAddress];\n }\n\n /// @notice all currently whitelisted addresses\n /// returns array of addresses\n function getAddressWhiteList() external view returns (address[]) {\n return addressWhiteList;\n }\n\n /// @dev allows for the owner to remove a white listed contract, eventually ownership could transition to\n /// a decentralized smart contract of community members to vote\n /// @param contractAddress contract to removed from white list\n /// @param whiteListIndex of the contractAddress in the addressWhiteList to be removed.\n function removeContractFromWhiteList(\n address contractAddress,\n uint whiteListIndex\n ) external onlyOwner returns (bool)\n {\n require(isWhiteListed[contractAddress]);\n require(addressWhiteList[whiteListIndex] == contractAddress);\n isWhiteListed[contractAddress] = false;\n\n // push the last item in array to replace the address we are removing and then trim the array.\n addressWhiteList[whiteListIndex] = addressWhiteList[addressWhiteList.length - 1];\n addressWhiteList.length -= 1;\n emit AddressRemovedFromWhitelist(contractAddress);\n }\n\n /// @dev allows for the owner or factory to add a white listed contract, eventually ownership could transition to\n /// a decentralized smart contract of community members to vote\n /// @param contractAddress contract to removed from white list\n function addAddressToWhiteList(address contractAddress) external {\n require(msg.sender == owner || factoryAddressWhiteList[msg.sender]);\n require(!isWhiteListed[contractAddress]);\n isWhiteListed[contractAddress] = true;\n addressWhiteList.push(contractAddress);\n emit AddressAddedToWhitelist(contractAddress);\n }\n\n /// @dev allows for the owner to add a new address of a factory responsible for creating new market contracts\n /// @param factoryAddress address of factory to be allowed to add contracts to whitelist\n function addFactoryAddress(address factoryAddress) external onlyOwner {\n require(!factoryAddressWhiteList[factoryAddress]);\n factoryAddressWhiteList[factoryAddress] = true;\n emit FactoryAddressAdded(factoryAddress);\n }\n\n /// @dev allows for the owner to remove an address of a factory\n /// @param factoryAddress address of factory to be removed\n function removeFactoryAddress(address factoryAddress) external onlyOwner {\n require(factoryAddressWhiteList[factoryAddress]);\n factoryAddressWhiteList[factoryAddress] = false;\n emit FactoryAddressRemoved(factoryAddress);\n }\n}\n", - "sourcePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistry.sol", + "sourcePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistry.sol", "ast": { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistry.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistry.sol", "exportedSymbols": { "MarketContractRegistry": [ 1717 @@ -232,7 +232,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", "file": "./MarketContractRegistryInterface.sol", "id": 1521, "nodeType": "ImportDirective", @@ -2668,7 +2668,7 @@ "src": "608:3734:4" }, "legacyAST": { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistry.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistry.sol", "exportedSymbols": { "MarketContractRegistry": [ 1717 @@ -2700,7 +2700,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", "file": "./MarketContractRegistryInterface.sol", "id": 1521, "nodeType": "ImportDirective", @@ -5209,10 +5209,10 @@ } }, "links": {}, - "address": "0xab0ca9a6899d60577f81e4b3464e8661d2cfd5db", - "transactionHash": "0x8e5ca21b23f9eed97f41df4773288df09fd6e66b2e457eb0dd236e65b996ed0d" + "address": "0x54de029511aed74d09b68f7420e6113d0131c766", + "transactionHash": "0x88b4cfc8c44e5f75f00557f8fba13dc548a06f5c8a8c7e64b31edb07fb747dda" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-07-27T19:00:06.648Z" + "updatedAt": "2018-09-07T17:31:18.159Z" } \ No newline at end of file diff --git a/build/contracts/MarketToken.json b/build/contracts/MarketToken.json index c9ee42c..51b2730 100644 --- a/build/contracts/MarketToken.json +++ b/build/contracts/MarketToken.json @@ -625,14 +625,14 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5060405160408061253d8339810180604052810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160068190555080600781905550601260ff16600a0a6323c3460002600281905550601260ff16600a0a6323c3460002600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505061243c806101016000396000f30060806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101ff57806318160ddd1461026457806323b872dd1461028f5780632ff2e9dc14610314578063313ce5671461033f5780633cad7c4e1461037057806340fc5e7a1461039d57806342966c68146103f457806345977d03146104215780634f1e43341461044e578063661884631461047b5780636e8c57e6146104e057806370a082311461050b5780637e3475a814610562578063802049ac1461058d57806384281dcc146105d05780638da5cb5b1461062b57806395d89b41146106825780639d564d9a14610712578063a9059cbb1461075f578063aafd775e146107c4578063c752ff621461083b578063cfab472f14610866578063d229a94a146108e1578063d73dd6231461092e578063dd62ed3e14610993578063f2fde38b14610a0a575b600080fd5b34801561017b57600080fd5b50610184610a4d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c45780820151818401526020810190506101a9565b50505050905090810190601f1680156101f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561027057600080fd5b50610279610b78565b6040518082815260200191505060405180910390f35b34801561029b57600080fd5b506102fa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b82565b604051808215151515815260200191505060405180910390f35b34801561032057600080fd5b50610329610f41565b6040518082815260200191505060405180910390f35b34801561034b57600080fd5b50610354610f52565b604051808260ff1660ff16815260200191505060405180910390f35b34801561037c57600080fd5b5061039b60048036038101908080359060200190929190505050610f57565b005b3480156103a957600080fd5b506103b2610fbc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040057600080fd5b5061041f60048036038101908080359060200190929190505050610fe2565b005b34801561042d57600080fd5b5061044c60048036038101908080359060200190929190505050610fef565b005b34801561045a57600080fd5b50610479600480360381019080803590602001909291905050506111d8565b005b34801561048757600080fd5b506104c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123d565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b506104f56114ce565b6040518082815260200191505060405180910390f35b34801561051757600080fd5b5061054c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114d4565b6040518082815260200191505060405180910390f35b34801561056e57600080fd5b5061057761151d565b6040518082815260200191505060405180910390f35b34801561059957600080fd5b506105ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611523565b005b3480156105dc57600080fd5b50610611600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c2565b604051808215151515815260200191505060405180910390f35b34801561063757600080fd5b50610640611610565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068e57600080fd5b50610697611635565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d75780820151818401526020810190506106bc565b50505050905090810190601f1680156107045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071e57600080fd5b5061075d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061166e565b005b34801561076b57600080fd5b506107aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117f5565b604051808215151515815260200191505060405180910390f35b3480156107d057600080fd5b50610825600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a19565b6040518082815260200191505060405180910390f35b34801561084757600080fd5b50610850611aa0565b6040518082815260200191505060405180910390f35b34801561087257600080fd5b506108c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aa6565b604051808215151515815260200191505060405180910390f35b3480156108ed57600080fd5b5061092c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b32565b005b34801561093a57600080fd5b50610979600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cbb565b604051808215151515815260200191505060405180910390f35b34801561099f57600080fd5b506109f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb7565b6040518082815260200191505060405180910390f35b348015610a1657600080fd5b50610a4b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f3e565b005b6040805190810160405280601581526020017f4d41524b45542050726f746f636f6c20546f6b656e000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600254905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610bbf57600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c0d57600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c9857600080fd5b610cea82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d7f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e5182600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601260ff16600a0a6323c346000281565b601281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb257600080fd5b8060068190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fec33826120c8565b50565b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561104d57600080fd5b61105681610fe2565b61106b816005546120ac90919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663753e88e533836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561113657600080fd5b505af115801561114a573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa6eb8a5f37ca5f03caebe01d969f49f93dd089e57d04580ba05974548fd44e77836040518082815260200191505060405180910390a350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123357600080fd5b8060078190555050565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561134e576000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113e2565b611361838261209390919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60075481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157e57600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600754600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410159050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f4d4b54000000000000000000000000000000000000000000000000000000000081525081565b60006116ff82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b905080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061178b8261227e565b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561183257600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561188057600080fd5b6118d282600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196782600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60055481565b6000600654600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015905092915050565b6000611bc382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b9050611bcf30836117f5565b5080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b6000611d4c82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fd557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111515156120a157fe5b818303905092915050565b600081830190508281101515156120bf57fe5b80905092915050565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561211657600080fd5b61216881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121c08160025461209390919063ffffffff16565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6122d081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236581600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505600a165627a7a72305820dbd051ef0462b40d7e944b862d249908b3d5d804e7662dc4c3afc64a89f230fe0029", - "deployedBytecode": "0x60806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101ff57806318160ddd1461026457806323b872dd1461028f5780632ff2e9dc14610314578063313ce5671461033f5780633cad7c4e1461037057806340fc5e7a1461039d57806342966c68146103f457806345977d03146104215780634f1e43341461044e578063661884631461047b5780636e8c57e6146104e057806370a082311461050b5780637e3475a814610562578063802049ac1461058d57806384281dcc146105d05780638da5cb5b1461062b57806395d89b41146106825780639d564d9a14610712578063a9059cbb1461075f578063aafd775e146107c4578063c752ff621461083b578063cfab472f14610866578063d229a94a146108e1578063d73dd6231461092e578063dd62ed3e14610993578063f2fde38b14610a0a575b600080fd5b34801561017b57600080fd5b50610184610a4d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c45780820151818401526020810190506101a9565b50505050905090810190601f1680156101f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561027057600080fd5b50610279610b78565b6040518082815260200191505060405180910390f35b34801561029b57600080fd5b506102fa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b82565b604051808215151515815260200191505060405180910390f35b34801561032057600080fd5b50610329610f41565b6040518082815260200191505060405180910390f35b34801561034b57600080fd5b50610354610f52565b604051808260ff1660ff16815260200191505060405180910390f35b34801561037c57600080fd5b5061039b60048036038101908080359060200190929190505050610f57565b005b3480156103a957600080fd5b506103b2610fbc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040057600080fd5b5061041f60048036038101908080359060200190929190505050610fe2565b005b34801561042d57600080fd5b5061044c60048036038101908080359060200190929190505050610fef565b005b34801561045a57600080fd5b50610479600480360381019080803590602001909291905050506111d8565b005b34801561048757600080fd5b506104c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123d565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b506104f56114ce565b6040518082815260200191505060405180910390f35b34801561051757600080fd5b5061054c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114d4565b6040518082815260200191505060405180910390f35b34801561056e57600080fd5b5061057761151d565b6040518082815260200191505060405180910390f35b34801561059957600080fd5b506105ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611523565b005b3480156105dc57600080fd5b50610611600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c2565b604051808215151515815260200191505060405180910390f35b34801561063757600080fd5b50610640611610565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068e57600080fd5b50610697611635565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d75780820151818401526020810190506106bc565b50505050905090810190601f1680156107045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071e57600080fd5b5061075d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061166e565b005b34801561076b57600080fd5b506107aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117f5565b604051808215151515815260200191505060405180910390f35b3480156107d057600080fd5b50610825600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a19565b6040518082815260200191505060405180910390f35b34801561084757600080fd5b50610850611aa0565b6040518082815260200191505060405180910390f35b34801561087257600080fd5b506108c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aa6565b604051808215151515815260200191505060405180910390f35b3480156108ed57600080fd5b5061092c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b32565b005b34801561093a57600080fd5b50610979600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cbb565b604051808215151515815260200191505060405180910390f35b34801561099f57600080fd5b506109f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb7565b6040518082815260200191505060405180910390f35b348015610a1657600080fd5b50610a4b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f3e565b005b6040805190810160405280601581526020017f4d41524b45542050726f746f636f6c20546f6b656e000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600254905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610bbf57600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c0d57600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c9857600080fd5b610cea82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d7f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e5182600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601260ff16600a0a6323c346000281565b601281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb257600080fd5b8060068190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fec33826120c8565b50565b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561104d57600080fd5b61105681610fe2565b61106b816005546120ac90919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663753e88e533836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561113657600080fd5b505af115801561114a573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa6eb8a5f37ca5f03caebe01d969f49f93dd089e57d04580ba05974548fd44e77836040518082815260200191505060405180910390a350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123357600080fd5b8060078190555050565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561134e576000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113e2565b611361838261209390919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60075481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157e57600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600754600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410159050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f4d4b54000000000000000000000000000000000000000000000000000000000081525081565b60006116ff82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b905080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061178b8261227e565b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561183257600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561188057600080fd5b6118d282600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196782600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60055481565b6000600654600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015905092915050565b6000611bc382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b9050611bcf30836117f5565b5080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b6000611d4c82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fd557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111515156120a157fe5b818303905092915050565b600081830190508281101515156120bf57fe5b80905092915050565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561211657600080fd5b61216881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121c08160025461209390919063ffffffff16565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6122d081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236581600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505600a165627a7a72305820dbd051ef0462b40d7e944b862d249908b3d5d804e7662dc4c3afc64a89f230fe0029", + "bytecode": "0x608060405234801561001057600080fd5b5060405160408061253d8339810180604052810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160068190555080600781905550601260ff16600a0a6323c3460002600281905550601260ff16600a0a6323c3460002600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505061243c806101016000396000f30060806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101ff57806318160ddd1461026457806323b872dd1461028f5780632ff2e9dc14610314578063313ce5671461033f5780633cad7c4e1461037057806340fc5e7a1461039d57806342966c68146103f457806345977d03146104215780634f1e43341461044e578063661884631461047b5780636e8c57e6146104e057806370a082311461050b5780637e3475a814610562578063802049ac1461058d57806384281dcc146105d05780638da5cb5b1461062b57806395d89b41146106825780639d564d9a14610712578063a9059cbb1461075f578063aafd775e146107c4578063c752ff621461083b578063cfab472f14610866578063d229a94a146108e1578063d73dd6231461092e578063dd62ed3e14610993578063f2fde38b14610a0a575b600080fd5b34801561017b57600080fd5b50610184610a4d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c45780820151818401526020810190506101a9565b50505050905090810190601f1680156101f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561027057600080fd5b50610279610b78565b6040518082815260200191505060405180910390f35b34801561029b57600080fd5b506102fa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b82565b604051808215151515815260200191505060405180910390f35b34801561032057600080fd5b50610329610f41565b6040518082815260200191505060405180910390f35b34801561034b57600080fd5b50610354610f52565b604051808260ff1660ff16815260200191505060405180910390f35b34801561037c57600080fd5b5061039b60048036038101908080359060200190929190505050610f57565b005b3480156103a957600080fd5b506103b2610fbc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040057600080fd5b5061041f60048036038101908080359060200190929190505050610fe2565b005b34801561042d57600080fd5b5061044c60048036038101908080359060200190929190505050610fef565b005b34801561045a57600080fd5b50610479600480360381019080803590602001909291905050506111d8565b005b34801561048757600080fd5b506104c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123d565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b506104f56114ce565b6040518082815260200191505060405180910390f35b34801561051757600080fd5b5061054c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114d4565b6040518082815260200191505060405180910390f35b34801561056e57600080fd5b5061057761151d565b6040518082815260200191505060405180910390f35b34801561059957600080fd5b506105ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611523565b005b3480156105dc57600080fd5b50610611600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c2565b604051808215151515815260200191505060405180910390f35b34801561063757600080fd5b50610640611610565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068e57600080fd5b50610697611635565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d75780820151818401526020810190506106bc565b50505050905090810190601f1680156107045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071e57600080fd5b5061075d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061166e565b005b34801561076b57600080fd5b506107aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117f5565b604051808215151515815260200191505060405180910390f35b3480156107d057600080fd5b50610825600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a19565b6040518082815260200191505060405180910390f35b34801561084757600080fd5b50610850611aa0565b6040518082815260200191505060405180910390f35b34801561087257600080fd5b506108c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aa6565b604051808215151515815260200191505060405180910390f35b3480156108ed57600080fd5b5061092c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b32565b005b34801561093a57600080fd5b50610979600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cbb565b604051808215151515815260200191505060405180910390f35b34801561099f57600080fd5b506109f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb7565b6040518082815260200191505060405180910390f35b348015610a1657600080fd5b50610a4b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f3e565b005b6040805190810160405280601581526020017f4d41524b45542050726f746f636f6c20546f6b656e000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600254905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610bbf57600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c0d57600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c9857600080fd5b610cea82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d7f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e5182600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601260ff16600a0a6323c346000281565b601281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb257600080fd5b8060068190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fec33826120c8565b50565b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561104d57600080fd5b61105681610fe2565b61106b816005546120ac90919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663753e88e533836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561113657600080fd5b505af115801561114a573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa6eb8a5f37ca5f03caebe01d969f49f93dd089e57d04580ba05974548fd44e77836040518082815260200191505060405180910390a350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123357600080fd5b8060078190555050565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561134e576000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113e2565b611361838261209390919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60075481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157e57600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600754600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410159050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f4d4b54000000000000000000000000000000000000000000000000000000000081525081565b60006116ff82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b905080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061178b8261227e565b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561183257600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561188057600080fd5b6118d282600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196782600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60055481565b6000600654600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015905092915050565b6000611bc382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b9050611bcf30836117f5565b5080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b6000611d4c82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fd557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111515156120a157fe5b818303905092915050565b600081830190508281101515156120bf57fe5b80905092915050565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561211657600080fd5b61216881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121c08160025461209390919063ffffffff16565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6122d081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236581600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505600a165627a7a72305820250995376a627d4e5d341f3dbdb6058ac42b2c47c1964112fd39fccdb346893d0029", + "deployedBytecode": "0x60806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101ff57806318160ddd1461026457806323b872dd1461028f5780632ff2e9dc14610314578063313ce5671461033f5780633cad7c4e1461037057806340fc5e7a1461039d57806342966c68146103f457806345977d03146104215780634f1e43341461044e578063661884631461047b5780636e8c57e6146104e057806370a082311461050b5780637e3475a814610562578063802049ac1461058d57806384281dcc146105d05780638da5cb5b1461062b57806395d89b41146106825780639d564d9a14610712578063a9059cbb1461075f578063aafd775e146107c4578063c752ff621461083b578063cfab472f14610866578063d229a94a146108e1578063d73dd6231461092e578063dd62ed3e14610993578063f2fde38b14610a0a575b600080fd5b34801561017b57600080fd5b50610184610a4d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c45780820151818401526020810190506101a9565b50505050905090810190601f1680156101f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561027057600080fd5b50610279610b78565b6040518082815260200191505060405180910390f35b34801561029b57600080fd5b506102fa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b82565b604051808215151515815260200191505060405180910390f35b34801561032057600080fd5b50610329610f41565b6040518082815260200191505060405180910390f35b34801561034b57600080fd5b50610354610f52565b604051808260ff1660ff16815260200191505060405180910390f35b34801561037c57600080fd5b5061039b60048036038101908080359060200190929190505050610f57565b005b3480156103a957600080fd5b506103b2610fbc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040057600080fd5b5061041f60048036038101908080359060200190929190505050610fe2565b005b34801561042d57600080fd5b5061044c60048036038101908080359060200190929190505050610fef565b005b34801561045a57600080fd5b50610479600480360381019080803590602001909291905050506111d8565b005b34801561048757600080fd5b506104c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123d565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b506104f56114ce565b6040518082815260200191505060405180910390f35b34801561051757600080fd5b5061054c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114d4565b6040518082815260200191505060405180910390f35b34801561056e57600080fd5b5061057761151d565b6040518082815260200191505060405180910390f35b34801561059957600080fd5b506105ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611523565b005b3480156105dc57600080fd5b50610611600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c2565b604051808215151515815260200191505060405180910390f35b34801561063757600080fd5b50610640611610565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068e57600080fd5b50610697611635565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d75780820151818401526020810190506106bc565b50505050905090810190601f1680156107045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071e57600080fd5b5061075d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061166e565b005b34801561076b57600080fd5b506107aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117f5565b604051808215151515815260200191505060405180910390f35b3480156107d057600080fd5b50610825600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a19565b6040518082815260200191505060405180910390f35b34801561084757600080fd5b50610850611aa0565b6040518082815260200191505060405180910390f35b34801561087257600080fd5b506108c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aa6565b604051808215151515815260200191505060405180910390f35b3480156108ed57600080fd5b5061092c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b32565b005b34801561093a57600080fd5b50610979600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cbb565b604051808215151515815260200191505060405180910390f35b34801561099f57600080fd5b506109f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb7565b6040518082815260200191505060405180910390f35b348015610a1657600080fd5b50610a4b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f3e565b005b6040805190810160405280601581526020017f4d41524b45542050726f746f636f6c20546f6b656e000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600254905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610bbf57600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c0d57600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c9857600080fd5b610cea82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d7f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e5182600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601260ff16600a0a6323c346000281565b601281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb257600080fd5b8060068190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fec33826120c8565b50565b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561104d57600080fd5b61105681610fe2565b61106b816005546120ac90919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663753e88e533836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561113657600080fd5b505af115801561114a573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa6eb8a5f37ca5f03caebe01d969f49f93dd089e57d04580ba05974548fd44e77836040518082815260200191505060405180910390a350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123357600080fd5b8060078190555050565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561134e576000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113e2565b611361838261209390919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60075481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157e57600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600754600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410159050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f4d4b54000000000000000000000000000000000000000000000000000000000081525081565b60006116ff82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b905080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061178b8261227e565b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561183257600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561188057600080fd5b6118d282600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196782600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60055481565b6000600654600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015905092915050565b6000611bc382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b9050611bcf30836117f5565b5080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b6000611d4c82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fd557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111515156120a157fe5b818303905092915050565b600081830190508281101515156120bf57fe5b80905092915050565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561211657600080fd5b61216881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121c08160025461209390919063ffffffff16565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6122d081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236581600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505600a165627a7a72305820250995376a627d4e5d341f3dbdb6058ac42b2c47c1964112fd39fccdb346893d0029", "sourceMap": "927:5128:20:-;;;1536:400;8:9:-1;5:2;;;30:1;27;20:12;5:2;1536:400:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;509:10:25;501:5;;:18;;;;;;;;;;;;;;;;;;1643:19:20;1619:21;:43;;;;1708:21;1672:33;:57;;;;1110:2;1173:14;;1169:2;:18;1157:9;:30;1739:12;:29;;;;1110:2;1173:14;;1169:2;:18;1157:9;:30;1850:8;:20;1859:10;1850:20;;;;;;;;;;;;;;;:37;;;;1536:400;;927:5128;;;;;;", "deployedSourceMap": "927:5128:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;975:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;975:53:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;975:53:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1803:188:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1803:188:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:26;;;;;;;;;;;;;;;;;;;;;;;736:444:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:444:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1119:68:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1119:68:20;;;;;;;;;;;;;;;;;;;;;;;1077:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1077:35:20;;;;;;;;;;;;;;;;;;;;;;;;;;;5180:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5180:119:20;;;;;;;;;;;;;;;;;;;;;;;;;;1189:32:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1189:32:21;;;;;;;;;;;;;;;;;;;;;;;;;;;353:73:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:73:27;;;;;;;;;;;;;;;;;;;;;;;;;;1624:363:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1624:363:21;;;;;;;;;;;;;;;;;;;;;;;;;;5477:141:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5477:141:20;;;;;;;;;;;;;;;;;;;;;;;;;;3617:403:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3617:403:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1280:45:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1280:45:20;;;;;;;;;;;;;;;;;;;;;;;1131:99:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1241:33:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1241:33:20;;;;;;;;;;;;;;;;;;;;;;;2125:124:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2125:124:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;2754:180:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2754:180:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;1034:37:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1034:37:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1034:37:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3853:617;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3853:617:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4721:213:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4721:213:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1270:28:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1270:28:21;;;;;;;;;;;;;;;;;;;;;;;2298:239:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2298:239:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3151:476;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3151:476:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2893:262:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2893:262:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2310:126:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;832:174:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;832:174:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;975:53:20;;;;;;;;;;;;;;;;;;;;:::o;1803:188:31:-;1870:4;1914:6;1882:7;:19;1890:10;1882:19;;;;;;;;;;;;;;;:29;1902:8;1882:29;;;;;;;;;;;;;;;:38;;;;1952:8;1931:38;;1940:10;1931:38;;;1962:6;1931:38;;;;;;;;;;;;;;;;;;1982:4;1975:11;;1803:188;;;;:::o;371:83:26:-;415:7;437:12;;430:19;;371:83;:::o;736:444:31:-;818:4;853:1;838:17;;:3;:17;;;;830:26;;;;;;;;880:8;:15;889:5;880:15;;;;;;;;;;;;;;;;870:6;:25;;862:34;;;;;;;;920:7;:14;928:5;920:14;;;;;;;;;;;;;;;:26;935:10;920:26;;;;;;;;;;;;;;;;910:6;:36;;902:45;;;;;;;;972:27;992:6;972:8;:15;981:5;972:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;954:8;:15;963:5;954:15;;;;;;;;;;;;;;;:45;;;;1021:25;1039:6;1021:8;:13;1030:3;1021:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1005:8;:13;1014:3;1005:13;;;;;;;;;;;;;;;:41;;;;1081:38;1112:6;1081:7;:14;1089:5;1081:14;;;;;;;;;;;;;;;:26;1096:10;1081:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1052:7;:14;1060:5;1052:14;;;;;;;;;;;;;;;:26;1067:10;1052:26;;;;;;;;;;;;;;;:67;;;;1146:3;1130:28;;1139:5;1130:28;;;1151:6;1130:28;;;;;;;;;;;;;;;;;;1171:4;1164:11;;736:444;;;;;:::o;1119:68:20:-;1110:2;1173:14;;1169:2;:18;1157:9;:30;1119:68;:::o;1077:35::-;1110:2;1077:35;:::o;5180:119::-;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;5283:9:20;5259:21;:33;;;;5180:119;:::o;1189:32:21:-;;;;;;;;;;;;;:::o;353:73:27:-;396:25;402:10;414:6;396:5;:25::i;:::-;353:73;:::o;1624:363:21:-;1712:1;1683:31;;:17;;;;;;;;;;;:31;;;;1675:40;;;;;;;;1726:11;1731:5;1726:4;:11::i;:::-;1817:24;1835:5;1817:13;;:17;;:24;;;;:::i;:::-;1801:13;:40;;;;1870:17;;;;;;;;;;;1852:48;;;1901:10;1913:5;1852:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1852:67:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:67:21;;;;1955:17;;;;;;;;;;;1934:46;;1943:10;1934:46;;;1974:5;1934:46;;;;;;;;;;;;;;;;;;1624:363;:::o;5477:141:20:-;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;5601:10:20;5565:33;:46;;;;5477:141;:::o;3617:403:31:-;3700:4;3712:13;3728:7;:19;3736:10;3728:19;;;;;;;;;;;;;;;:29;3748:8;3728:29;;;;;;;;;;;;;;;;3712:45;;3786:8;3767:16;:27;3763:164;;;3836:1;3804:7;:19;3812:10;3804:19;;;;;;;;;;;;;;;:29;3824:8;3804:29;;;;;;;;;;;;;;;:33;;;;3763:164;;;3890:30;3903:16;3890:8;:12;;:30;;;;:::i;:::-;3858:7;:19;3866:10;3858:19;;;;;;;;;;;;;;;:29;3878:8;3858:29;;;;;;;;;;;;;;;:62;;;;3763:164;3958:8;3937:61;;3946:10;3937:61;;;3968:7;:19;3976:10;3968:19;;;;;;;;;;;;;;;:29;3988:8;3968:29;;;;;;;;;;;;;;;;3937:61;;;;;;;;;;;;;;;;;;4011:4;4004:11;;3617:403;;;;;:::o;1280:45:20:-;;;;:::o;1131:99:26:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;1241:33:20:-;;;;:::o;2125:124:21:-;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;2228:14:21;2208:17;;:34;;;;;;;;;;;;;;;;;;2125:124;:::o;2754:180:20:-;2846:4;2894:33;;2869:8;:21;2878:11;2869:21;;;;;;;;;;;;;;;;:58;;2862:65;;2754:180;;;:::o;238:20:25:-;;;;;;;;;;;;;:::o;1034:37:20:-;;;;;;;;;;;;;;;;;;;;:::o;3853:617::-;3943:26;3972:113;4064:11;3972:39;:62;4012:21;3972:62;;;;;;;;;;;;;;;:74;4035:10;3972:74;;;;;;;;;;;;;;;;:78;;:113;;;;:::i;:::-;3943:142;;4298:18;4221:39;:62;4261:21;4221:62;;;;;;;;;;;;;;;:74;4284:10;4221:74;;;;;;;;;;;;;;;:95;;;;4326:43;4357:11;4326:30;:43::i;:::-;4432:10;4384:79;;4409:21;4384:79;;;4444:18;4384:79;;;;;;;;;;;;;;;;;;3853:617;;;:::o;608:321:26:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;4721:213:20:-;4829:4;4852:39;:62;4892:21;4852:62;;;;;;;;;;;;;;;:75;4915:11;4852:75;;;;;;;;;;;;;;;;4845:82;;4721:213;;;;:::o;1270:28:21:-;;;;:::o;2298:239:20:-;2407:4;2509:21;;2430:39;:62;2470:21;2430:62;;;;;;;;;;;;;;;:75;2493:11;2430:75;;;;;;;;;;;;;;;;:100;;2423:107;;2298:239;;;;:::o;3151:476::-;3261:21;3285:111;3377:9;3285:39;:62;3325:21;3285:62;;;;;;;;;;;;;;;:74;3348:10;3285:74;;;;;;;;;;;;;;;;:78;;:111;;;;:::i;:::-;3261:135;;3406:25;3415:4;3421:9;3406:8;:25::i;:::-;;3518:13;3441:39;:62;3481:21;3441:62;;;;;;;;;;;;;;;:74;3504:10;3441:74;;;;;;;;;;;;;;;:90;;;;3594:10;3546:74;;3571:21;3546:74;;;3606:13;3546:74;;;;;;;;;;;;;;;;;;3151:476;;;:::o;2893:262:31:-;2971:4;3015:46;3049:11;3015:7;:19;3023:10;3015:19;;;;;;;;;;;;;;;:29;3035:8;3015:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;2983:7;:19;2991:10;2983:19;;;;;;;;;;;;;;;:29;3003:8;2983:29;;;;;;;;;;;;;;;:78;;;;3093:8;3072:61;;3081:10;3072:61;;;3103:7;:19;3111:10;3103:19;;;;;;;;;;;;;;;:29;3123:8;3103:29;;;;;;;;;;;;;;;;3072:61;;;;;;;;;;;;;;;;;;3146:4;3139:11;;2893:262;;;;:::o;2310:126::-;2384:7;2406;:15;2414:6;2406:15;;;;;;;;;;;;;;;:25;2422:8;2406:25;;;;;;;;;;;;;;;;2399:32;;2310:126;;;;:::o;832:174:25:-;653:5;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;928:1;908:22;;:8;:22;;;;900:31;;;;;;;;970:8;942:37;;963:5;;;;;;;;;;;942:37;;;;;;;;;;;;993:8;985:5;;:16;;;;;;;;;;;;;;;;;;832:174;:::o;836:110:24:-;894:7;921:1;916;:6;;909:14;;;;;;940:1;936;:5;929:12;;836:110;;;;:::o;1008:123::-;1066:9;1091:1;1087;:5;1083:9;;1110:1;1105;:6;;1098:14;;;;;;1125:1;1118:8;;1008:123;;;;:::o;430:438:27:-;508:8;:14;517:4;508:14;;;;;;;;;;;;;;;;498:6;:24;;490:33;;;;;;;;718:26;737:6;718:8;:14;727:4;718:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;701:8;:14;710:4;701:14;;;;;;;;;;;;;;;:43;;;;765:24;782:6;765:12;;:16;;:24;;;;:::i;:::-;750:12;:39;;;;805:4;800:18;;;811:6;800:18;;;;;;;;;;;;;;;;;;852:1;829:34;;838:4;829:34;;;856:6;829:34;;;;;;;;;;;;;;;;;;430:438;;:::o;5798:255:20:-;5891:31;5910:11;5891:8;:14;5900:4;5891:14;;;;;;;;;;;;;;;;:18;;:31;;;;:::i;:::-;5874:8;:14;5883:4;5874:14;;;;;;;;;;;;;;;:48;;;;5955:37;5980:11;5955:8;:20;5964:10;5955:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;5932:8;:20;5941:10;5932:20;;;;;;;;;;;;;;;:60;;;;6022:10;6007:39;;6016:4;6007:39;;;6034:11;6007:39;;;;;;;;;;;;;;;;;;5798:255;:::o", "source": "/*\n Copyright 2017-2018 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity ^0.4.24;\n\nimport \"./UpgradableToken.sol\";\n\n\n/// @title Market Token\n/// @notice Our membership token. Users must lock tokens to enable trading for a given Market Contract\n/// as well as have a minimum balance of tokens to create new Market Contracts.\n/// @author Phil Elsasser \ncontract MarketToken is UpgradeableToken {\n\n string public constant name = \"MARKET Protocol Token\";\n string public constant symbol = \"MKT\";\n uint8 public constant decimals = 18;\n\n uint public constant INITIAL_SUPPLY = 600000000 * 10**uint(decimals); // 600 million tokens with 18 decimals (6e+26)\n\n uint public lockQtyToAllowTrading;\n uint public minBalanceToAllowContractCreation;\n\n mapping(address => mapping(address => uint)) contractAddressToUserAddressToQtyLocked;\n\n event UpdatedUserLockedBalance(address indexed contractAddress, address indexed userAddress, uint balance);\n\n constructor(uint qtyToLockForTrading, uint minBalanceForCreation) public {\n lockQtyToAllowTrading = qtyToLockForTrading;\n minBalanceToAllowContractCreation = minBalanceForCreation;\n totalSupply_ = INITIAL_SUPPLY; //note totalSupply_ and INITIAL_SUPPLY may vary as token's are burnt.\n\n balances[msg.sender] = INITIAL_SUPPLY; // for now allocate all tokens to creator\n }\n\n /*\n // EXTERNAL METHODS\n */\n\n /// @notice checks if a user address has locked the needed qty to allow trading to a given contract address\n /// @param marketContractAddress address of the MarketContract\n /// @param userAddress address of the user\n /// @return true if user has locked tokens to trade the supplied marketContractAddress\n function isUserEnabledForContract(address marketContractAddress, address userAddress) external view returns (bool) {\n return contractAddressToUserAddressToQtyLocked[marketContractAddress][userAddress] >= lockQtyToAllowTrading;\n }\n\n /// @notice checks if a user address has enough token balance to be eligible to create a contract\n /// @param userAddress address of the user\n /// @return true if user has sufficient balance of tokens\n function isBalanceSufficientForContractCreation(address userAddress) external view returns (bool) {\n return balances[userAddress] >= minBalanceToAllowContractCreation;\n }\n\n /// @notice allows user to lock tokens to enable trading for a given market contract\n /// @param marketContractAddress address of the MarketContract\n /// @param qtyToLock desired qty of tokens to lock\n function lockTokensForTradingMarketContract(address marketContractAddress, uint qtyToLock) external {\n uint256 lockedBalance = contractAddressToUserAddressToQtyLocked[marketContractAddress][msg.sender].add(\n qtyToLock\n );\n transfer(this, qtyToLock);\n contractAddressToUserAddressToQtyLocked[marketContractAddress][msg.sender] = lockedBalance;\n emit UpdatedUserLockedBalance(marketContractAddress, msg.sender, lockedBalance);\n }\n\n /// @notice allows user to unlock tokens previously allocated to trading a MarketContract\n /// @param marketContractAddress address of the MarketContract\n /// @param qtyToUnlock desired qty of tokens to unlock\n function unlockTokens(address marketContractAddress, uint qtyToUnlock) external {\n uint256 balanceAfterUnLock = contractAddressToUserAddressToQtyLocked[marketContractAddress][msg.sender].sub(\n qtyToUnlock\n ); // no need to check balance, sub() will ensure sufficient balance to unlock!\n // update balance before external call!\n contractAddressToUserAddressToQtyLocked[marketContractAddress][msg.sender] = balanceAfterUnLock;\n transferLockedTokensBackToUser(qtyToUnlock);\n emit UpdatedUserLockedBalance(marketContractAddress, msg.sender, balanceAfterUnLock);\n }\n\n /// @notice get the currently locked balance for a user given the specific contract address\n /// @param marketContractAddress address of the MarketContract\n /// @param userAddress address of the user\n /// @return the locked balance\n function getLockedBalanceForUser(address marketContractAddress, address userAddress) external view returns (uint) {\n return contractAddressToUserAddressToQtyLocked[marketContractAddress][userAddress];\n }\n\n /*\n // EXTERNAL - ONLY CREATOR METHODS\n */\n\n /// @notice allows the creator to set the qty each user address needs to lock in\n /// order to trade a given MarketContract\n /// @param qtyToLock qty needed to enable trading\n function setLockQtyToAllowTrading(uint qtyToLock) external onlyOwner {\n lockQtyToAllowTrading = qtyToLock;\n }\n\n /// @notice allows the creator to set minimum balance a user must have in order to create MarketContracts\n /// @param minBalance balance to enable contract creation\n function setMinBalanceForContractCreation(uint minBalance) external onlyOwner {\n minBalanceToAllowContractCreation = minBalance;\n }\n\n /*\n // PRIVATE METHODS\n */\n\n /// @dev returns locked balance from this contract to the user's balance\n /// @param qtyToUnlock qty to return to user's balance\n function transferLockedTokensBackToUser(uint qtyToUnlock) private {\n balances[this] = balances[this].sub(qtyToUnlock);\n balances[msg.sender] = balances[msg.sender].add(qtyToUnlock);\n emit Transfer(this, msg.sender, qtyToUnlock);\n }\n}\n", - "sourcePath": "/home/pelsasser/MARKETProtocol/contracts/tokens/MarketToken.sol", + "sourcePath": "/home/parallels/MARKETProtocol/contracts/tokens/MarketToken.sol", "ast": { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/tokens/MarketToken.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/tokens/MarketToken.sol", "exportedSymbols": { "MarketToken": [ 4327 @@ -653,7 +653,7 @@ "src": "608:24:20" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/tokens/UpgradableToken.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/tokens/UpgradableToken.sol", "file": "./UpgradableToken.sol", "id": 4071, "nodeType": "ImportDirective", @@ -3942,7 +3942,7 @@ "src": "608:5448:20" }, "legacyAST": { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/tokens/MarketToken.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/tokens/MarketToken.sol", "exportedSymbols": { "MarketToken": [ 4327 @@ -3963,7 +3963,7 @@ "src": "608:24:20" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/tokens/UpgradableToken.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/tokens/UpgradableToken.sol", "file": "./UpgradableToken.sol", "id": 4071, "nodeType": "ImportDirective", @@ -7259,10 +7259,10 @@ "4": { "events": {}, "links": {}, - "address": "0x585bd4faff1420de5aa842a553068805efc4af47", - "transactionHash": "0xade09363df147223e04a9ab107d0427244766df0bbd22c716dfeaf33608d0bbe" + "address": "0x4a13d83d544f36de7f477601c81a50405c244135", + "transactionHash": "0xb6cd5baacdaf32f6f6c54d124f9fb548d5736440977abaf82426b5e277ddb76b" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-07-27T19:00:06.649Z" + "updatedAt": "2018-09-07T17:31:18.232Z" } \ No newline at end of file diff --git a/build/contracts/MathLib.json b/build/contracts/MathLib.json index d3a515e..df83747 100644 --- a/build/contracts/MathLib.json +++ b/build/contracts/MathLib.json @@ -37,14 +37,14 @@ "type": "function" } ], - "bytecode": "0x610185610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f3007300000000000000000000000000000000000000003014608060405260043610610058576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063ed981d4f1461005d575b600080fd5b6100a360048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506100b9565b6040518082815260200191505060405180910390f35b60008060008413156100e95786831115156100d757600090506100e4565b6100e18388610122565b90505b610109565b85831015156100fb5760009050610108565b6101058684610122565b90505b5b846101138561013b565b82020291505095945050505050565b600082821115151561013057fe5b818303905092915050565b60008082121561015057816000039050610154565b8190505b9190505600a165627a7a7230582039378c0ad36e59a0569b24747c874608db7653b8b9abf9aae0b7b030b4b5d9f30029", - "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610610058576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063ed981d4f1461005d575b600080fd5b6100a360048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506100b9565b6040518082815260200191505060405180910390f35b60008060008413156100e95786831115156100d757600090506100e4565b6100e18388610122565b90505b610109565b85831015156100fb5760009050610108565b6101058684610122565b90505b5b846101138561013b565b82020291505095945050505050565b600082821115151561013057fe5b818303905092915050565b60008082121561015057816000039050610154565b8190505b9190505600a165627a7a7230582039378c0ad36e59a0569b24747c874608db7653b8b9abf9aae0b7b030b4b5d9f30029", + "bytecode": "0x610185610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f3007300000000000000000000000000000000000000003014608060405260043610610058576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063ed981d4f1461005d575b600080fd5b6100a360048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506100b9565b6040518082815260200191505060405180910390f35b60008060008413156100e95786831115156100d757600090506100e4565b6100e18388610122565b90505b610109565b85831015156100fb5760009050610108565b6101058684610122565b90505b5b846101138561013b565b82020291505095945050505050565b600082821115151561013057fe5b818303905092915050565b60008082121561015057816000039050610154565b8190505b9190505600a165627a7a72305820f9db85e27ac93faf3da10968a5938d94d075410d77f94305a7147dac6d32e5170029", + "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610610058576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063ed981d4f1461005d575b600080fd5b6100a360048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506100b9565b6040518082815260200191505060405180910390f35b60008060008413156100e95786831115156100d757600090506100e4565b6100e18388610122565b90505b610109565b85831015156100fb5760009050610108565b6101058684610122565b90505b5b846101138561013b565b82020291505095945050505050565b600082821115151561013057fe5b818303905092915050565b60008082121561015057816000039050610154565b8190505b9190505600a165627a7a72305820f9db85e27ac93faf3da10968a5938d94d075410d77f94305a7147dac6d32e5170029", "sourceMap": "718:4531:9:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", "deployedSourceMap": "718:4531:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;4453:794;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4628:21;4665:12;4697:1;4691:3;:7;4687:491;;;4795:10;4786:5;:19;;4782:145;;;4835:1;4825:11;;4782:145;;;4885:27;4894:5;4901:10;4885:8;:27::i;:::-;4875:37;;4782:145;4687:491;;;5040:8;5031:5;:17;;5027:141;;;5078:1;5068:11;;5027:141;;;5128:25;5137:8;5147:5;5128:8;:25::i;:::-;5118:35;;5027:141;4687:491;5227:13;5216:8;5220:3;5216;:8::i;:::-;5206:7;:18;:34;5187:53;;4453:794;;;;;;;;:::o;1246:125::-;1309:7;1340:1;1335;:6;;1328:14;;;;;;1363:1;1359;:5;1352:12;;1246:125;;;;:::o;3139:167::-;3185:7;3212:1;3208;:5;3204:96;;;3242:1;3241:2;;3229:15;;;;3204:96;3287:1;3275:14;;3139:167;;;;:::o", "source": "/*\n Copyright 2017-2018 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\npragma solidity ^0.4.24;\n\n\n/// @title Math function library with overflow protection inspired by Open Zeppelin\nlibrary MathLib {\n\n int256 constant INT256_MIN = int256((uint256(1) << 255));\n int256 constant INT256_MAX = int256(~((uint256(1) << 255)));\n\n function multiply(uint256 a, uint256 b) pure internal returns (uint256) {\n uint256 c = a * b;\n assert(a == 0 || c / a == b);\n return c;\n }\n\n function divideFractional(\n uint256 a,\n uint256 numerator,\n uint256 denominator\n ) pure internal returns (uint256)\n {\n return multiply(a, numerator) / denominator;\n }\n\n function subtract(uint256 a, uint256 b) pure internal returns (uint256) {\n assert(b <= a);\n return a - b;\n }\n\n function add(uint256 a, uint256 b) pure internal returns (uint256) {\n uint256 c = a + b;\n assert(c >= a);\n return c;\n }\n\n /// @notice safely adds two signed integers ensuring that no wrap occurs\n /// @param a value to add b to\n /// @param b value to add to a\n function add(int256 a, int256 b) pure internal returns (int256) {\n int256 c = a + b;\n if (!isSameSign(a, b)) { // result will always be smaller than current value, no wrap possible\n return c;\n }\n\n if (a >= 0) { // a is positive, b must be less than MAX - a to prevent wrap\n assert(b <= INT256_MAX - a);\n } else { // a is negative, b must be greater than MIN - a to prevent wrap\n assert(b >= INT256_MIN - a);\n }\n return c;\n }\n\n /// @notice safely subtracts two signed integers ensuring that no wrap occurs\n /// @param a value to subtract b from\n /// @param b value to subtract from a\n function subtract(int256 a, int256 b) pure internal returns (int256) {\n return add(a, -b); // use inverse add\n }\n\n /// @param a integer to determine sign of\n /// @return int8 sign of original value, either +1,0,-1\n function sign(int a) pure internal returns (int8) {\n if (a > 0) {\n return 1;\n } else if (a < 0) {\n return -1;\n }\n return 0;\n }\n\n /// @param a integer to compare to b\n /// @param b integer to compare to a\n /// @return bool true if a and b are the same sign (+/-)\n function isSameSign(int a, int b) pure internal returns (bool) {\n return ( a == b || a * b > 0);\n }\n\n /// @param a integer to determine absolute value of\n /// @return uint non signed representation of a\n function abs(int256 a) pure internal returns (uint256) {\n if (a < 0) {\n return uint(-a);\n } else {\n return uint(a);\n }\n }\n\n /// @notice finds the value closer to zero regardless of sign\n /// @param a integer to compare to b\n /// @param b integer to compare to a\n /// @return a if a is closer to zero than b - does not return abs value!\n function absMin(int256 a, int256 b) pure internal returns (int256) {\n return abs(a) < abs(b) ? a : b;\n }\n\n /// @notice finds the value further from zero regardless of sign\n /// @param a integer to compare to b\n /// @param b integer to compare to a\n /// @return a if a is further to zero than b - does not return abs value!\n function absMax(int256 a, int256 b) pure internal returns (int256) {\n return abs(a) >= abs(b) ? a : b;\n }\n\n /// @notice determines the amount of needed collateral for a given position (qty and price)\n /// @param priceFloor lowest price the contract is allowed to trade before expiration\n /// @param priceCap highest price the contract is allowed to trade before expiration\n /// @param qtyMultiplier multiplier for qty from base units\n /// @param qty signed integer corresponding to the traded quantity\n /// @param price of the trade\n function calculateNeededCollateral(\n uint priceFloor,\n uint priceCap,\n uint qtyMultiplier,\n int qty,\n uint price\n ) pure public returns (uint neededCollateral)\n {\n uint maxLoss;\n if (qty > 0) { // this qty is long, calculate max loss from entry price to floor\n if (price <= priceFloor) {\n maxLoss = 0;\n } else {\n maxLoss = subtract(price, priceFloor);\n }\n } else { // this qty is short, calculate max loss from entry price to ceiling;\n if (price >= priceCap) {\n maxLoss = 0;\n } else {\n maxLoss = subtract(priceCap, price);\n }\n }\n neededCollateral = maxLoss * abs(qty) * qtyMultiplier;\n }\n}\n", - "sourcePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/MathLib.sol", + "sourcePath": "/home/parallels/MARKETProtocol/contracts/libraries/MathLib.sol", "ast": { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/MathLib.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/MathLib.sol", "exportedSymbols": { "MathLib": [ 2232 @@ -4811,7 +4811,7 @@ "src": "607:4643:9" }, "legacyAST": { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/MathLib.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/MathLib.sol", "exportedSymbols": { "MathLib": [ 2232 @@ -9585,10 +9585,10 @@ "4": { "events": {}, "links": {}, - "address": "0x10420151fa1d0676ca274d6e53435ec261190ff0", - "transactionHash": "0x58f2074de4df2a4b74081d60a18e2b310f51456f8107312ba20833fab309371a" + "address": "0x28b39df6f57adf357e01c47be86527d6f8c85833", + "transactionHash": "0xad46ad2b5b689bb5cc7f96455e47adb49026e5a648c83808bb74e58c6ce81d33" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-07-27T19:00:06.632Z" + "updatedAt": "2018-09-07T17:31:18.146Z" } \ No newline at end of file diff --git a/build/contracts/Migrations.json b/build/contracts/Migrations.json index 31b0d43..1df7c94 100644 --- a/build/contracts/Migrations.json +++ b/build/contracts/Migrations.json @@ -64,32 +64,32 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820cd3fa760d93a06308643d9054e3597f0011e0e43c3ef7ae43e427b5ceb3e97310029", - "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820cd3fa760d93a06308643d9054e3597f0011e0e43c3ef7ae43e427b5ceb3e97310029", - "sourceMap": "26:480:0:-;;;115:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;115:50:0;150:10;142:5;;:18;;;;;;;;;;;;;;;;;;26:480;;;;;;", - "deployedSourceMap": "26:480:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:165:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;74:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;74:36:0;;;;;;;;;;;;;;;;;;;;;;;50:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;232:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;232:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;339:165;401:19;215:5;;;;;;;;;;;201:19;;:10;:19;;;197:26;;;434:11;401:45;;452:8;:21;;;474:24;;452:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;452:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;452:47:0;;;;197:26;339:165;;:::o;74:36::-;;;;:::o;50:20::-;;;;;;;;;;;;;:::o;232:103::-;215:5;;;;;;;;;;;201:19;;:10;:19;;;197:26;;;321:9;294:24;:36;;;;197:26;232:103;:::o", - "source": "pragma solidity ^0.4.23;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", - "sourcePath": "/home/parallels/abis/contracts/Migrations.sol", + "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820a4913219bc6bc4ccb15d6f6ffc85171ed2647d002535fbd5bb256b8e90bf63f70029", + "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820a4913219bc6bc4ccb15d6f6ffc85171ed2647d002535fbd5bb256b8e90bf63f70029", + "sourceMap": "26:480:6:-;;;178:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;178:50:6;213:10;205:5;;:18;;;;;;;;;;;;;;;;;;26:480;;;;;;", + "deployedSourceMap": "26:480:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:165:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;74:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;74:36:6;;;;;;;;;;;;;;;;;;;;;;;50:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50:20:6;;;;;;;;;;;;;;;;;;;;;;;;;;;232:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;232:103:6;;;;;;;;;;;;;;;;;;;;;;;;;;339:165;401:19;161:5;;;;;;;;;;;147:19;;:10;:19;;;143:26;;;434:11;401:45;;452:8;:21;;;474:24;;452:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;452:47:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;452:47:6;;;;143:26;339:165;;:::o;74:36::-;;;;:::o;50:20::-;;;;;;;;;;;;;:::o;232:103::-;161:5;;;;;;;;;;;147:19;;:10;:19;;;143:26;;;321:9;294:24;:36;;;;143:26;232:103;:::o", + "source": "pragma solidity ^0.4.24;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", + "sourcePath": "/home/parallels/MARKETProtocol/contracts/Migrations.sol", "ast": { - "absolutePath": "/home/parallels/abis/contracts/Migrations.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 56 + 1789 ] }, - "id": 57, + "id": 1790, "nodeType": "SourceUnit", "nodes": [ { - "id": 1, + "id": 1734, "literals": [ "solidity", "^", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:0" + "src": "0:24:6" }, { "baseContracts": [], @@ -97,20 +97,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 56, + "id": 1789, "linearizedBaseContracts": [ - 56 + 1789 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 3, + "id": 1736, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 56, - "src": "50:20:0", + "scope": 1789, + "src": "50:20:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -118,10 +118,10 @@ "typeString": "address" }, "typeName": { - "id": 2, + "id": 1735, "name": "address", "nodeType": "ElementaryTypeName", - "src": "50:7:0", + "src": "50:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -132,11 +132,11 @@ }, { "constant": false, - "id": 5, + "id": 1738, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "scope": 56, - "src": "74:36:0", + "scope": 1789, + "src": "74:36:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -144,10 +144,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4, + "id": 1737, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "74:4:0", + "src": "74:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -158,49 +158,38 @@ }, { "body": { - "id": 13, + "id": 1746, "nodeType": "Block", - "src": "136:29:0", + "src": "137:37:6", "statements": [ { - "expression": { + "condition": { "argumentTypes": null, - "id": 11, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "142:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9, + "id": 1740, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "150:3:0", + "referencedDeclaration": 5192, + "src": "147:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 10, + "id": 1741, "isConstant": false, "isLValue": false, "isPure": false, @@ -208,85 +197,103 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "150:10:0", + "src": "147:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "142:18:0", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1742, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "161:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "147:19:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 12, - "nodeType": "ExpressionStatement", - "src": "142:18:0" + "falseBody": null, + "id": 1745, + "nodeType": "IfStatement", + "src": "143:26:6", + "trueBody": { + "id": 1744, + "nodeType": "PlaceholderStatement", + "src": "168:1:6" + } } ] }, "documentation": null, - "id": 14, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", + "id": 1747, + "name": "restricted", + "nodeType": "ModifierDefinition", "parameters": { - "id": 6, - "nodeType": "ParameterList", - "parameters": [], - "src": "126:2:0" - }, - "payable": false, - "returnParameters": { - "id": 7, + "id": 1739, "nodeType": "ParameterList", "parameters": [], - "src": "136:0:0" + "src": "134:2:6" }, - "scope": 56, - "src": "115:50:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" + "src": "115:59:6", + "visibility": "internal" }, { "body": { - "id": 22, + "id": 1755, "nodeType": "Block", - "src": "191:37:0", + "src": "199:29:6", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 19, + "id": 1753, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { + "argumentTypes": null, + "id": 1750, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "205:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 16, + "id": 1751, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "201:3:0", + "referencedDeclaration": 5192, + "src": "213:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 17, + "id": 1752, "isConstant": false, "isLValue": false, "isPure": false, @@ -294,80 +301,73 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "201:10:0", + "src": "213:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 18, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "215:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "201:19:0", + "src": "205:18:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "falseBody": null, - "id": 21, - "nodeType": "IfStatement", - "src": "197:26:0", - "trueBody": { - "id": 20, - "nodeType": "PlaceholderStatement", - "src": "222:1:0" - } + "id": 1754, + "nodeType": "ExpressionStatement", + "src": "205:18:6" } ] }, "documentation": null, - "id": 23, - "name": "restricted", - "nodeType": "ModifierDefinition", + "id": 1756, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", "parameters": { - "id": 15, + "id": 1748, "nodeType": "ParameterList", "parameters": [], - "src": "188:2:0" + "src": "189:2:6" }, - "src": "169:59:0", - "visibility": "internal" + "payable": false, + "returnParameters": { + "id": 1749, + "nodeType": "ParameterList", + "parameters": [], + "src": "199:0:6" + }, + "scope": 1789, + "src": "178:50:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" }, { "body": { - "id": 34, + "id": 1767, "nodeType": "Block", - "src": "288:47:0", + "src": "288:47:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 32, + "id": 1765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 30, + "id": 1763, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "294:24:0", + "referencedDeclaration": 1738, + "src": "294:24:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -377,68 +377,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 31, + "id": 1764, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "321:9:0", + "referencedDeclaration": 1758, + "src": "321:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "294:36:0", + "src": "294:36:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 33, + "id": 1766, "nodeType": "ExpressionStatement", - "src": "294:36:0" + "src": "294:36:6" } ] }, "documentation": null, - "id": 35, + "id": 1768, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 28, + "id": 1761, "modifierName": { "argumentTypes": null, - "id": 27, + "id": 1760, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "277:10:0", + "referencedDeclaration": 1747, + "src": "277:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "277:10:0" + "src": "277:10:6" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { - "id": 26, + "id": 1759, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25, + "id": 1758, "name": "completed", "nodeType": "VariableDeclaration", - "scope": 35, - "src": "254:14:0", + "scope": 1768, + "src": "254:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -446,10 +446,10 @@ "typeString": "uint256" }, "typeName": { - "id": 24, + "id": 1757, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "254:4:0", + "src": "254:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -459,54 +459,54 @@ "visibility": "internal" } ], - "src": "253:16:0" + "src": "253:16:6" }, "payable": false, "returnParameters": { - "id": 29, + "id": 1762, "nodeType": "ParameterList", "parameters": [], - "src": "288:0:0" + "src": "288:0:6" }, - "scope": 56, - "src": "232:103:0", + "scope": 1789, + "src": "232:103:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 54, + "id": 1787, "nodeType": "Block", - "src": "395:109:0", + "src": "395:109:6", "statements": [ { "assignments": [ - 43 + 1776 ], "declarations": [ { "constant": false, - "id": 43, + "id": 1776, "name": "upgraded", "nodeType": "VariableDeclaration", - "scope": 55, - "src": "401:19:0", + "scope": 1788, + "src": "401:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$56", + "typeIdentifier": "t_contract$_Migrations_$1789", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, - "id": 42, + "id": 1775, "name": "Migrations", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 56, - "src": "401:10:0", + "referencedDeclaration": 1789, + "src": "401:10:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$56", + "typeIdentifier": "t_contract$_Migrations_$1789", "typeString": "contract Migrations" } }, @@ -514,18 +514,18 @@ "visibility": "internal" } ], - "id": 47, + "id": 1780, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 45, + "id": 1778, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "434:11:0", + "referencedDeclaration": 1770, + "src": "434:11:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -539,18 +539,18 @@ "typeString": "address" } ], - "id": 44, + "id": 1777, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "423:10:0", + "referencedDeclaration": 1789, + "src": "423:10:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$56_$", + "typeIdentifier": "t_type$_t_contract$_Migrations_$1789_$", "typeString": "type(contract Migrations)" } }, - "id": 46, + "id": 1779, "isConstant": false, "isLValue": false, "isPure": false, @@ -558,14 +558,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "423:23:0", + "src": "423:23:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$56", + "typeIdentifier": "t_contract$_Migrations_$1789", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", - "src": "401:45:0" + "src": "401:45:6" }, { "expression": { @@ -573,12 +573,12 @@ "arguments": [ { "argumentTypes": null, - "id": 51, + "id": 1784, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "474:24:0", + "referencedDeclaration": 1738, + "src": "474:24:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -594,32 +594,32 @@ ], "expression": { "argumentTypes": null, - "id": 48, + "id": 1781, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "452:8:0", + "referencedDeclaration": 1776, + "src": "452:8:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$56", + "typeIdentifier": "t_contract$_Migrations_$1789", "typeString": "contract Migrations" } }, - "id": 50, + "id": 1783, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", - "referencedDeclaration": 35, - "src": "452:21:0", + "referencedDeclaration": 1768, + "src": "452:21:6", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 52, + "id": 1785, "isConstant": false, "isLValue": false, "isPure": false, @@ -627,57 +627,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "452:47:0", + "src": "452:47:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 53, + "id": 1786, "nodeType": "ExpressionStatement", - "src": "452:47:0" + "src": "452:47:6" } ] }, "documentation": null, - "id": 55, + "id": 1788, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 40, + "id": 1773, "modifierName": { "argumentTypes": null, - "id": 39, + "id": 1772, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "384:10:0", + "referencedDeclaration": 1747, + "src": "384:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "384:10:0" + "src": "384:10:6" } ], "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 38, + "id": 1771, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 37, + "id": 1770, "name": "new_address", "nodeType": "VariableDeclaration", - "scope": 55, - "src": "356:19:0", + "scope": 1788, + "src": "356:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -685,10 +685,10 @@ "typeString": "address" }, "typeName": { - "id": 36, + "id": 1769, "name": "address", "nodeType": "ElementaryTypeName", - "src": "356:7:0", + "src": "356:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -698,48 +698,48 @@ "visibility": "internal" } ], - "src": "355:21:0" + "src": "355:21:6" }, "payable": false, "returnParameters": { - "id": 41, + "id": 1774, "nodeType": "ParameterList", "parameters": [], - "src": "395:0:0" + "src": "395:0:6" }, - "scope": 56, - "src": "339:165:0", + "scope": 1789, + "src": "339:165:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 57, - "src": "26:480:0" + "scope": 1790, + "src": "26:480:6" } ], - "src": "0:507:0" + "src": "0:507:6" }, "legacyAST": { - "absolutePath": "/home/parallels/abis/contracts/Migrations.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 56 + 1789 ] }, - "id": 57, + "id": 1790, "nodeType": "SourceUnit", "nodes": [ { - "id": 1, + "id": 1734, "literals": [ "solidity", "^", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:0" + "src": "0:24:6" }, { "baseContracts": [], @@ -747,20 +747,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 56, + "id": 1789, "linearizedBaseContracts": [ - 56 + 1789 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 3, + "id": 1736, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 56, - "src": "50:20:0", + "scope": 1789, + "src": "50:20:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -768,10 +768,10 @@ "typeString": "address" }, "typeName": { - "id": 2, + "id": 1735, "name": "address", "nodeType": "ElementaryTypeName", - "src": "50:7:0", + "src": "50:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -782,11 +782,11 @@ }, { "constant": false, - "id": 5, + "id": 1738, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "scope": 56, - "src": "74:36:0", + "scope": 1789, + "src": "74:36:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -794,10 +794,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4, + "id": 1737, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "74:4:0", + "src": "74:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -808,49 +808,38 @@ }, { "body": { - "id": 13, + "id": 1746, "nodeType": "Block", - "src": "136:29:0", + "src": "137:37:6", "statements": [ { - "expression": { + "condition": { "argumentTypes": null, - "id": 11, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "142:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 9, + "id": 1740, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "150:3:0", + "referencedDeclaration": 5192, + "src": "147:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 10, + "id": 1741, "isConstant": false, "isLValue": false, "isPure": false, @@ -858,85 +847,103 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "150:10:0", + "src": "147:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "142:18:0", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1742, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "161:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "147:19:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 12, - "nodeType": "ExpressionStatement", - "src": "142:18:0" + "falseBody": null, + "id": 1745, + "nodeType": "IfStatement", + "src": "143:26:6", + "trueBody": { + "id": 1744, + "nodeType": "PlaceholderStatement", + "src": "168:1:6" + } } ] }, "documentation": null, - "id": 14, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", + "id": 1747, + "name": "restricted", + "nodeType": "ModifierDefinition", "parameters": { - "id": 6, - "nodeType": "ParameterList", - "parameters": [], - "src": "126:2:0" - }, - "payable": false, - "returnParameters": { - "id": 7, + "id": 1739, "nodeType": "ParameterList", "parameters": [], - "src": "136:0:0" + "src": "134:2:6" }, - "scope": 56, - "src": "115:50:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" + "src": "115:59:6", + "visibility": "internal" }, { "body": { - "id": 22, + "id": 1755, "nodeType": "Block", - "src": "191:37:0", + "src": "199:29:6", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 19, + "id": 1753, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { + "argumentTypes": null, + "id": 1750, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "205:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 16, + "id": 1751, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "201:3:0", + "referencedDeclaration": 5192, + "src": "213:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 17, + "id": 1752, "isConstant": false, "isLValue": false, "isPure": false, @@ -944,80 +951,73 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "201:10:0", + "src": "213:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 18, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "215:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "201:19:0", + "src": "205:18:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "falseBody": null, - "id": 21, - "nodeType": "IfStatement", - "src": "197:26:0", - "trueBody": { - "id": 20, - "nodeType": "PlaceholderStatement", - "src": "222:1:0" - } + "id": 1754, + "nodeType": "ExpressionStatement", + "src": "205:18:6" } ] }, "documentation": null, - "id": 23, - "name": "restricted", - "nodeType": "ModifierDefinition", + "id": 1756, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", "parameters": { - "id": 15, + "id": 1748, "nodeType": "ParameterList", "parameters": [], - "src": "188:2:0" + "src": "189:2:6" }, - "src": "169:59:0", - "visibility": "internal" + "payable": false, + "returnParameters": { + "id": 1749, + "nodeType": "ParameterList", + "parameters": [], + "src": "199:0:6" + }, + "scope": 1789, + "src": "178:50:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" }, { "body": { - "id": 34, + "id": 1767, "nodeType": "Block", - "src": "288:47:0", + "src": "288:47:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 32, + "id": 1765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 30, + "id": 1763, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "294:24:0", + "referencedDeclaration": 1738, + "src": "294:24:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1027,68 +1027,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 31, + "id": 1764, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "321:9:0", + "referencedDeclaration": 1758, + "src": "321:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "294:36:0", + "src": "294:36:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 33, + "id": 1766, "nodeType": "ExpressionStatement", - "src": "294:36:0" + "src": "294:36:6" } ] }, "documentation": null, - "id": 35, + "id": 1768, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 28, + "id": 1761, "modifierName": { "argumentTypes": null, - "id": 27, + "id": 1760, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "277:10:0", + "referencedDeclaration": 1747, + "src": "277:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "277:10:0" + "src": "277:10:6" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { - "id": 26, + "id": 1759, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25, + "id": 1758, "name": "completed", "nodeType": "VariableDeclaration", - "scope": 35, - "src": "254:14:0", + "scope": 1768, + "src": "254:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1096,10 +1096,10 @@ "typeString": "uint256" }, "typeName": { - "id": 24, + "id": 1757, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "254:4:0", + "src": "254:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1109,54 +1109,54 @@ "visibility": "internal" } ], - "src": "253:16:0" + "src": "253:16:6" }, "payable": false, "returnParameters": { - "id": 29, + "id": 1762, "nodeType": "ParameterList", "parameters": [], - "src": "288:0:0" + "src": "288:0:6" }, - "scope": 56, - "src": "232:103:0", + "scope": 1789, + "src": "232:103:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 54, + "id": 1787, "nodeType": "Block", - "src": "395:109:0", + "src": "395:109:6", "statements": [ { "assignments": [ - 43 + 1776 ], "declarations": [ { "constant": false, - "id": 43, + "id": 1776, "name": "upgraded", "nodeType": "VariableDeclaration", - "scope": 55, - "src": "401:19:0", + "scope": 1788, + "src": "401:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$56", + "typeIdentifier": "t_contract$_Migrations_$1789", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, - "id": 42, + "id": 1775, "name": "Migrations", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 56, - "src": "401:10:0", + "referencedDeclaration": 1789, + "src": "401:10:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$56", + "typeIdentifier": "t_contract$_Migrations_$1789", "typeString": "contract Migrations" } }, @@ -1164,18 +1164,18 @@ "visibility": "internal" } ], - "id": 47, + "id": 1780, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 45, + "id": 1778, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "434:11:0", + "referencedDeclaration": 1770, + "src": "434:11:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1189,18 +1189,18 @@ "typeString": "address" } ], - "id": 44, + "id": 1777, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "423:10:0", + "referencedDeclaration": 1789, + "src": "423:10:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$56_$", + "typeIdentifier": "t_type$_t_contract$_Migrations_$1789_$", "typeString": "type(contract Migrations)" } }, - "id": 46, + "id": 1779, "isConstant": false, "isLValue": false, "isPure": false, @@ -1208,14 +1208,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "423:23:0", + "src": "423:23:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$56", + "typeIdentifier": "t_contract$_Migrations_$1789", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", - "src": "401:45:0" + "src": "401:45:6" }, { "expression": { @@ -1223,12 +1223,12 @@ "arguments": [ { "argumentTypes": null, - "id": 51, + "id": 1784, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "474:24:0", + "referencedDeclaration": 1738, + "src": "474:24:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1244,32 +1244,32 @@ ], "expression": { "argumentTypes": null, - "id": 48, + "id": 1781, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "452:8:0", + "referencedDeclaration": 1776, + "src": "452:8:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$56", + "typeIdentifier": "t_contract$_Migrations_$1789", "typeString": "contract Migrations" } }, - "id": 50, + "id": 1783, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", - "referencedDeclaration": 35, - "src": "452:21:0", + "referencedDeclaration": 1768, + "src": "452:21:6", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 52, + "id": 1785, "isConstant": false, "isLValue": false, "isPure": false, @@ -1277,57 +1277,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "452:47:0", + "src": "452:47:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 53, + "id": 1786, "nodeType": "ExpressionStatement", - "src": "452:47:0" + "src": "452:47:6" } ] }, "documentation": null, - "id": 55, + "id": 1788, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 40, + "id": 1773, "modifierName": { "argumentTypes": null, - "id": 39, + "id": 1772, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "384:10:0", + "referencedDeclaration": 1747, + "src": "384:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "384:10:0" + "src": "384:10:6" } ], "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 38, + "id": 1771, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 37, + "id": 1770, "name": "new_address", "nodeType": "VariableDeclaration", - "scope": 55, - "src": "356:19:0", + "scope": 1788, + "src": "356:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1335,10 +1335,10 @@ "typeString": "address" }, "typeName": { - "id": 36, + "id": 1769, "name": "address", "nodeType": "ElementaryTypeName", - "src": "356:7:0", + "src": "356:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1348,27 +1348,27 @@ "visibility": "internal" } ], - "src": "355:21:0" + "src": "355:21:6" }, "payable": false, "returnParameters": { - "id": 41, + "id": 1774, "nodeType": "ParameterList", "parameters": [], - "src": "395:0:0" + "src": "395:0:6" }, - "scope": 56, - "src": "339:165:0", + "scope": 1789, + "src": "339:165:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 57, - "src": "26:480:0" + "scope": 1790, + "src": "26:480:6" } ], - "src": "0:507:0" + "src": "0:507:6" }, "compiler": { "name": "solc", @@ -1378,10 +1378,10 @@ "4": { "events": {}, "links": {}, - "address": "0xcd392092ad3e5d1592822455168c98a6d34b307c", - "transactionHash": "0x54e91b11d25d331c3220ccf4785339d9294bd7c2f12616266fedeaaed02781f2" + "address": "0x76fe6f32279defd7e64ea53fa9b68d2c18dab47d", + "transactionHash": "0xb109b1e6ffbf2839244035f8aa2890f2d4e5c9d89988b476d6cfa06863bd9387" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-07-27T19:00:06.731Z" + "updatedAt": "2018-09-07T17:31:18.228Z" } \ No newline at end of file diff --git a/build/contracts/OrderLib.json b/build/contracts/OrderLib.json index 82aaaaf..c35c57d 100644 --- a/build/contracts/OrderLib.json +++ b/build/contracts/OrderLib.json @@ -68,14 +68,14 @@ "type": "function" } ], - "bytecode": "0x61059a610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f3007300000000000000000000000000000000000000003014608060405260043610610063576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806336a716da146100685780638163681e14610122575b600080fd5b610104600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080606001906003806020026040519081016040528092919082600360200280828437820191505050505091929192908060a00190600580602002604051908101604052809291908260056020028082843782019150505050509192919290803590602001909291905050506101a7565b60405180826000191660001916815260200191505060405180910390f35b61018d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803560ff16906020019092919080356000191690602001909291908035600019169060200190929190505050610401565b604051808215151515815260200191505060405180910390f35b6000848460006003811015156101b957fe5b60200201518560016003811015156101cd57fe5b60200201518660026003811015156101e157fe5b60200201518660006005811015156101f557fe5b602002015187600160058110151561020957fe5b602002015188600260058110151561021d57fe5b602002015189600360058110151561023157fe5b60200201518a600460058110151561024557fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156103ca57805182526020820191506020810190506020830392506103a5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600060018560405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561048a5780518252602082019150602081019050602083039250610465565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020858585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561052b573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16149050959450505050505600a165627a7a723058206bc9a005fbe3ceb4e0105315103fc4d6402a5543548c0d686a8141a21d330c210029", - "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610610063576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806336a716da146100685780638163681e14610122575b600080fd5b610104600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080606001906003806020026040519081016040528092919082600360200280828437820191505050505091929192908060a00190600580602002604051908101604052809291908260056020028082843782019150505050509192919290803590602001909291905050506101a7565b60405180826000191660001916815260200191505060405180910390f35b61018d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803560ff16906020019092919080356000191690602001909291908035600019169060200190929190505050610401565b604051808215151515815260200191505060405180910390f35b6000848460006003811015156101b957fe5b60200201518560016003811015156101cd57fe5b60200201518660026003811015156101e157fe5b60200201518660006005811015156101f557fe5b602002015187600160058110151561020957fe5b602002015188600260058110151561021d57fe5b602002015189600360058110151561023157fe5b60200201518a600460058110151561024557fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156103ca57805182526020820191506020810190506020830392506103a5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600060018560405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561048a5780518252602082019150602081019050602083039250610465565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020858585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561052b573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16149050959450505050505600a165627a7a723058206bc9a005fbe3ceb4e0105315103fc4d6402a5543548c0d686a8141a21d330c210029", + "bytecode": "0x61059a610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f3007300000000000000000000000000000000000000003014608060405260043610610063576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806336a716da146100685780638163681e14610122575b600080fd5b610104600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080606001906003806020026040519081016040528092919082600360200280828437820191505050505091929192908060a00190600580602002604051908101604052809291908260056020028082843782019150505050509192919290803590602001909291905050506101a7565b60405180826000191660001916815260200191505060405180910390f35b61018d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803560ff16906020019092919080356000191690602001909291908035600019169060200190929190505050610401565b604051808215151515815260200191505060405180910390f35b6000848460006003811015156101b957fe5b60200201518560016003811015156101cd57fe5b60200201518660026003811015156101e157fe5b60200201518660006005811015156101f557fe5b602002015187600160058110151561020957fe5b602002015188600260058110151561021d57fe5b602002015189600360058110151561023157fe5b60200201518a600460058110151561024557fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156103ca57805182526020820191506020810190506020830392506103a5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600060018560405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561048a5780518252602082019150602081019050602083039250610465565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020858585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561052b573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16149050959450505050505600a165627a7a723058203e89d8b8c18246436cca71b0d4b005cc0aa9fecf73ca69d879de033b768dc97b0029", + "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610610063576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806336a716da146100685780638163681e14610122575b600080fd5b610104600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080606001906003806020026040519081016040528092919082600360200280828437820191505050505091929192908060a00190600580602002604051908101604052809291908260056020028082843782019150505050509192919290803590602001909291905050506101a7565b60405180826000191660001916815260200191505060405180910390f35b61018d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803560ff16906020019092919080356000191690602001909291908035600019169060200190929190505050610401565b604051808215151515815260200191505060405180910390f35b6000848460006003811015156101b957fe5b60200201518560016003811015156101cd57fe5b60200201518660026003811015156101e157fe5b60200201518660006005811015156101f557fe5b602002015187600160058110151561020957fe5b602002015188600260058110151561021d57fe5b602002015189600360058110151561023157fe5b60200201518a600460058110151561024557fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156103ca57805182526020820191506020810190506020830392506103a5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600060018560405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561048a5780518252602082019150602081019050602083039250610465565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020858585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561052b573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16149050959450505050505600a165627a7a723058203e89d8b8c18246436cca71b0d4b005cc0aa9fecf73ca69d879de033b768dc97b0029", "sourceMap": "730:4673:10:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", "deployedSourceMap": "730:4673:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2115:643;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3017:359;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2115:643;2294:7;2381:15;2414:14;2429:1;2414:17;;;;;;;;;;;;;2449:14;2464:1;2449:17;;;;;;;;;;;;;2484:14;2499:1;2484:17;;;;;;;;;;;;;2519:19;2539:1;2519:22;;;;;;;;;;;;;2559:19;2579:1;2559:22;;;;;;;;;;;;;2599:19;2619:1;2599:22;;;;;;;;;;;;;2639:19;2659:1;2639:22;;;;;;;;;;;;;2679:19;2699:1;2679:22;;;;;;;;;;;;;2719:8;2347:394;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2347:394:10;;;2324:427;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;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;;;2324:427:10;;;;;;;;;;;;;;;;2317:434;;2115:643;;;;;;:::o;3017:359::-;3178:4;3222:147;3308:4;3255:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3255:58:10;;;3245:69;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;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;;;3245:69:10;;;;;;;;;;;;;;;;3328:1;3343;3358;3222:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3222:147:10;;;;;;;;3205:164;;:13;:164;;;3198:171;;3017:359;;;;;;;:::o", "source": "/*\n Copyright 2017-2018 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\npragma solidity ^0.4.24;\n\nimport \"./MathLib.sol\";\n\n\n/// @title OrderLib\n/// @author Phil Elsasser \nlibrary OrderLib {\n using MathLib for int;\n\n struct OrderMappings {\n mapping (bytes32 => int) filledOrderQty;\n mapping (bytes32 => int) cancelledOrderQty;\n }\n\n struct Order {\n address maker;\n address taker;\n address feeRecipient;\n uint makerFee;\n uint takerFee;\n uint price;\n uint expirationTimeStamp;\n int qty;\n bytes32 orderHash;\n }\n\n /*\n // PUBLIC METHODS\n */\n\n /// @notice returns the qty that is no longer available to trade for a given order\n /// @param orderHash hash of order to find filled and cancelled qty\n /// @return int quantity that is no longer able to filled from the supplied order hash\n function getQtyFilledOrCancelledFromOrder(\n OrderMappings storage self,\n bytes32 orderHash\n ) internal view returns (int)\n {\n return self.filledOrderQty[orderHash].add(self.cancelledOrderQty[orderHash]);\n }\n\n /// @notice creates the hash for the given order parameters.\n /// @param contractAddress address of the calling contract, orders are unique to each contract\n /// @param orderAddresses array of 3 address. maker, taker, and feeRecipient\n /// @param unsignedOrderValues array of 5 unsigned integers. makerFee, takerFee, price, expirationTimeStamp and salt\n /// @param orderQty signed qty of the original order.\n function createOrderHash(\n address contractAddress,\n address[3] orderAddresses,\n uint[5] unsignedOrderValues,\n int orderQty\n ) public pure returns (bytes32)\n {\n return keccak256(\n abi.encodePacked(\n contractAddress,\n orderAddresses[0],\n orderAddresses[1],\n orderAddresses[2],\n unsignedOrderValues[0],\n unsignedOrderValues[1],\n unsignedOrderValues[2],\n unsignedOrderValues[3],\n unsignedOrderValues[4],\n orderQty\n )\n );\n }\n\n /// @notice confirms hash originated from signer\n /// @param signerAddress - address of order originator\n /// @param hash - original order hash\n /// @param v order signature\n /// @param r order signature\n /// @param s order signature\n function isValidSignature(\n address signerAddress,\n bytes32 hash,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) public pure returns (bool)\n {\n return signerAddress == ecrecover(\n keccak256(abi.encodePacked(\"\\x19Ethereum Signed Message:\\n32\", hash)),\n v,\n r,\n s\n );\n }\n\n /*\n // INTERNAL METHODS\n */\n\n /// @dev factory for orders to be created with needed hash.\n /// @param contractAddress address of the calling contract, orders are unique to each contract\n /// @param orderAddresses array of 3 address. maker, taker, and feeRecipient\n /// @param unsignedOrderValues array of 5 unsigned integers. makerFee, takerFee, price, expirationTimeStamp and salt\n /// @param orderQty signed qty of the original order.\n function createOrder(\n address contractAddress,\n address[3] orderAddresses,\n uint[5] unsignedOrderValues,\n int orderQty\n ) internal pure returns (Order order)\n {\n order.maker = orderAddresses[0];\n order.taker = orderAddresses[1];\n order.feeRecipient = orderAddresses[2];\n order.makerFee = unsignedOrderValues[0];\n order.takerFee = unsignedOrderValues[1];\n order.price = unsignedOrderValues[2];\n order.expirationTimeStamp = unsignedOrderValues[3];\n order.qty = orderQty;\n order.orderHash = createOrderHash(\n contractAddress,\n orderAddresses,\n unsignedOrderValues,\n orderQty\n );\n return order;\n }\n\n // @dev increment our filled order mappings to avoid overfill\n // @param self storage struct\n // @param orderHash hashed value for order\n // @param filledQty amount to add to our mapping\n function addFilledQtyToOrder(OrderMappings storage self, bytes32 orderHash, int filledQty) internal {\n self.filledOrderQty[orderHash] = self.filledOrderQty[orderHash].add(filledQty);\n }\n\n // @dev increment our cancelled order mappings\n // @param self storage struct\n // @param orderHash hashed value for order\n // @param cancelledQty amount to add to our mapping\n function addCancelledQtyToOrder(OrderMappings storage self, bytes32 orderHash, int cancelledQty) internal {\n self.cancelledOrderQty[orderHash] = self.cancelledOrderQty[orderHash].add(cancelledQty);\n }\n}\n\n", - "sourcePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/OrderLib.sol", + "sourcePath": "/home/parallels/MARKETProtocol/contracts/libraries/OrderLib.sol", "ast": { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/OrderLib.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/OrderLib.sol", "exportedSymbols": { "OrderLib": [ 2510 @@ -96,7 +96,7 @@ "src": "607:24:10" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/MathLib.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/MathLib.sol", "file": "./MathLib.sol", "id": 2235, "nodeType": "ImportDirective", @@ -3663,7 +3663,7 @@ "src": "607:4798:10" }, "legacyAST": { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/OrderLib.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/OrderLib.sol", "exportedSymbols": { "OrderLib": [ 2510 @@ -3684,7 +3684,7 @@ "src": "607:24:10" }, { - "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/MathLib.sol", + "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/MathLib.sol", "file": "./MathLib.sol", "id": 2235, "nodeType": "ImportDirective", @@ -7258,10 +7258,10 @@ "4": { "events": {}, "links": {}, - "address": "0xf40577d3be99effc6634b44ee465e9efed7a6733", - "transactionHash": "0x5ace19ff9820c063a26ac6b82987c655143a31d6b4d3de6c64305508f90e6a68" + "address": "0x5374c9b5d0d60e7f58063e02e6fd905ff94c4fb6", + "transactionHash": "0x33c4df150277507e471f22ae7d3b02455b27bdc6a19dfcbbdaf7b1d63c3a746d" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-07-27T19:00:06.636Z" + "updatedAt": "2018-09-07T17:31:18.165Z" } \ No newline at end of file From 1c5ccd9e9faf3d304bb4439f871d023bbda64881 Mon Sep 17 00:00:00 2001 From: Phil Elsasser Date: Fri, 7 Sep 2018 12:26:29 -0600 Subject: [PATCH 2/4] remove collateral token deploy --- migrations/2_deploy_contracts.js | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/migrations/2_deploy_contracts.js b/migrations/2_deploy_contracts.js index 18cabf1..f8da8d4 100644 --- a/migrations/2_deploy_contracts.js +++ b/migrations/2_deploy_contracts.js @@ -7,9 +7,6 @@ const OrderLib = artifacts.require( const QueryTest = artifacts.require( '@marketprotocol/marketprotocol/OraclizeQueryTest.sol' ); -const InitialAllocationCollateralToken = artifacts.require( - '@marketprotocol/marketprotocol/InitialAllocationCollateralToken.sol' -); const MarketContractOraclize = artifacts.require( '@marketprotocol/marketprotocol/MarketContractOraclize.sol' ); @@ -66,8 +63,6 @@ module.exports = function(deployer, network) { ) .then(function() { // deploy collateral token and a fake wrapped ETH - deployer.deploy(InitialAllocationCollateralToken, 'Stable USD', 'USD', 1e9, 18); - deployer.deploy(InitialAllocationCollateralToken, 'Fake Wrapped ETH', 'FWETH', 1e9, 18); const daysToExpiration = 28; const expirationDate = new Date(); @@ -97,30 +92,6 @@ module.exports = function(deployer, network) { // white list the factory return marketContractRegistry .addFactoryAddress(factory.address) - .then(function() { - // deploy a single contract for testing purposes. - const gasLimit = 4000000; // gas limit for contract deployment - let quickExpirationTimeStamp = - Math.floor(Date.now() / 1000) + 60 * 60; // expires in an hour - return factory - .deployMarketContractOraclize( - 'ETHUSD_' + new Date().toISOString().substring(0, 10), - InitialAllocationCollateralToken.address, - [50000, 150000, 2, 1e18, quickExpirationTimeStamp], - 'URL', - 'json(https://api.kraken.com/0/public/Ticker?pair=ETHUSD).result.XETHZUSD.c.0', - { gas: gasLimit} - ) - .then(function(marketContractDeployResults) { - const marketContractDeployedAddress = - marketContractDeployResults.logs[0].args - .contractAddress; - return collateralPoolFactory.deployMarketCollateralPool( - marketContractDeployedAddress, - { gas: 1900000 } - ); - }); - }); }); }); }); From b9e30eefd1f4c9366d5d5131b44eacb9f2292e54 Mon Sep 17 00:00:00 2001 From: Phil Elsasser Date: Fri, 7 Sep 2018 12:31:26 -0600 Subject: [PATCH 3/4] updated ABIs --- .../MarketCollateralPoolFactory.json | 30 +- .../MarketContractFactoryOraclize.json | 30 +- build/contracts/MarketContractOraclize.json | 24 +- build/contracts/MarketContractRegistry.json | 20 +- build/contracts/MarketToken.json | 20 +- build/contracts/MathLib.json | 16 +- build/contracts/Migrations.json | 834 +++++++++--------- build/contracts/OraclizeQueryTest.json | 6 +- build/contracts/OrderLib.json | 20 +- 9 files changed, 500 insertions(+), 500 deletions(-) diff --git a/build/contracts/MarketCollateralPoolFactory.json b/build/contracts/MarketCollateralPoolFactory.json index 8505112..c25f49d 100644 --- a/build/contracts/MarketCollateralPoolFactory.json +++ b/build/contracts/MarketCollateralPoolFactory.json @@ -100,14 +100,14 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50604051602080612ac183398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129fd806100c46000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636a8da881146100725780638da5cb5b146100b5578063ab7b49931461010c578063ceaaa9151461014f578063f2fde38b146101a6575b600080fd5b34801561007e57600080fd5b506100b3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101e9565b005b3480156100c157600080fd5b506100ca610403565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561011857600080fd5b5061014d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610428565b005b34801561015b57600080fd5b50610164610503565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101b257600080fd5b506101e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610529565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad23de63836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156102a857600080fd5b505af11580156102bc573d6000803e3d6000fd5b505050506040513d60208110156102d257600080fd5b810190808051906020019092919050505015156102ee57600080fd5b816102f761067e565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015610349573d6000803e3d6000fd5b5090508173ffffffffffffffffffffffffffffffffffffffff1663c201293b826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156103e757600080fd5b505af11580156103fb573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561048357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156104bf57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561058457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156105c057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040516123438061068f833901905600608060405234801561001057600080fd5b506040516020806123438339810180604052810190808051906020019092919050505080600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561007057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663798ddbc86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561017857600080fd5b505af115801561018c573d6000803e3d6000fd5b505050506040513d60208110156101a257600080fd5b8101908080519060200190929190505050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612140806102036000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631c88ef1e146100bf578063315a095d1461012757806331e8a7ef146101545780633bc6db30146101ab5780633f7f4f17146101c257806345aff2fa14610219578063798ddbc8146102705780637bb55cd2146102c75780638af6375f1461031e578063a68e5ad014610349578063aafff7e114610376578063eeaba083146103cd575b600080fd5b3480156100cb57600080fd5b5061010a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610444565b604051808381526020018281526020019250505060405180910390f35b34801561013357600080fd5b50610152600480360381019080803590602001909291905050506104be565b005b34801561016057600080fd5b50610195600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610695565b6040518082815260200191505060405180910390f35b3480156101b757600080fd5b506101c06106e4565b005b3480156101ce57600080fd5b50610203600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a98565b6040518082815260200191505060405180910390f35b34801561022557600080fd5b5061025a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae1565b6040518082815260200191505060405180910390f35b34801561027c57600080fd5b50610285610b2d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d357600080fd5b506102dc610b53565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032a57600080fd5b50610333610b78565b6040518082815260200191505060405180910390f35b34801561035557600080fd5b5061037460048036038101908080359060200190929190505050610b7e565b005b34801561038257600080fd5b506103b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eb0565b6040518082815260200191505060405180910390f35b3480156103d957600080fd5b50610442600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610ec8565b005b6000806000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110151561049857fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600061051282600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106433383600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b505050506040513d602081101561060d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16610f7a9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633270bb5b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561076c57600080fd5b505af1158015610780573d6000803e3d6000fd5b505050506040513d602081101561079657600080fd5b810190808051906020019092919050505015156107b257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d60208110156108ef57600080fd5b8101908080519060200190929190505050151561090b57600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010154141515610a4d57610a4c81337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff846001015402600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f348e8b26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a0c57600080fd5b505af1158015610a20573d6000803e3d6000fd5b505050506040513d6020811015610a3657600080fd5b8101908080519060200190929190505050611065565b5b610a95600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104be565b50565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050506040513d6020811015610cbd57600080fd5b81019080805190602001909291905050501515610cd957600080fd5b610d2b82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b9050610e1a333084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610db957600080fd5b505af1158015610dcd573d6000803e3d6000fd5b505050506040513d6020811015610de357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166117cc909392919063ffffffff16565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b60036020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2357600080fd5b610f2e8483836118ec565b610f5b837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8402836118ec565b50505050565b6000828211151515610f6f57fe5b818303905092915050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561101d57600080fd5b505af1158015611031573d6000803e3d6000fd5b505050506040513d602081101561104757600080fd5b8101908080519060200190929190505050151561106057fe5b505050565b6000806000809250849150600087600001805490501415151561108457fe5b5b600082141515611790578660000160018860000180549050038154811015156110aa57fe5b906000526020600020906002020190506110c382611a1b565b6110d08260010154611a1b565b11151561142b576113f373__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561117a57600080fd5b505af115801561118e573d6000803e3d6000fd5b505050506040513d60208110156111a457600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050506040513d602081101561126557600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156112fc57600080fd5b505af1158015611310573d6000803e3d6000fd5b505050506040513d602081101561132657600080fd5b810190808051906020019092919050505086600101548a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b1580156113a957600080fd5b505af41580156113bd573d6000803e3d6000fd5b505050506040513d60208110156113d357600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b925061140c816001015483611a3990919063ffffffff16565b91508660000180548091906001900361142591906120b3565b5061178b565b611442828260010154611a3990919063ffffffff16565b816001018190555061178473__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050506040513d602081101561151757600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156115ae57600080fd5b505af11580156115c2573d6000803e3d6000fd5b505050506040513d60208110156115d857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561166f57600080fd5b505af1158015611683573d6000803e3d6000fd5b505050506040513d602081101561169957600080fd5b81019080805190602001909291905050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88028a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b15801561173a57600080fd5b505af415801561174e573d6000803e3d6000fd5b505050506040513d602081101561176457600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b9250611790565b611085565b6000831415156117a5576117a48684611aa1565b5b50505050505050565b60008082840190508381101515156117c257fe5b8091505092915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156118a357600080fd5b505af11580156118b7573d6000803e3d6000fd5b505050506040513d60208110156118cd57600080fd5b810190808051906020019092919050505015156118e657fe5b50505050565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506000826001015414806119565750611955848360010154611be290919063ffffffff16565b5b1561196c5761196782868686611bfc565b6119f5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840282600101541215156119ac576119a782868686611065565b6119f4565b6119de82867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85600101540286611065565b8382600101540190506119f382868386611bfc565b5b5b611a0c848360010154611a3990919063ffffffff16565b82600101819055505050505050565b600080821215611a3057816000039050611a34565b8190505b919050565b6000808284019050611a4b8484611be2565b1515611a5957809150611a9a565b600084121515611a7f578360ff60019060020a0219038313151515611a7a57fe5b611a96565b8360ff60019060020a02038312151515611a9557fe5b5b8091505b5092915050565b6000611af582600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b5082600154610f6190919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b600081831480611bf457506000828402135b905092915050565b600073__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611c9e57600080fd5b505af1158015611cb2573d6000803e3d6000fd5b505050506040513d6020811015611cc857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611d5f57600080fd5b505af1158015611d73573d6000803e3d6000fd5b505050506040513d6020811015611d8957600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611e2057600080fd5b505af1158015611e34573d6000803e3d6000fd5b505050506040513d6020811015611e4a57600080fd5b810190808051906020019092919050505087876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b158015611ec957600080fd5b505af4158015611edd573d6000803e3d6000fd5b505050506040513d6020811015611ef357600080fd5b81019080805190602001909291905050509050611f108482611f72565b846000016040805190810160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050505050505050565b6000611fc682600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612021826001546117ae90919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b8154818355818111156120e0576002028160020283600052602060002091820191016120df91906120e5565b5b505050565b61211191905b8082111561210d576000808201600090556001820160009055506002016120eb565b5090565b905600a165627a7a72305820b781e2fce2708f6dd40ade78d8837808fe004daf0983e8ce24906bcbd146ee320029a165627a7a72305820e22539e7d71cb24106176950b834fae25398b1ebe7edfb9e7c1d104464390b0a0029", - "deployedBytecode": "0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636a8da881146100725780638da5cb5b146100b5578063ab7b49931461010c578063ceaaa9151461014f578063f2fde38b146101a6575b600080fd5b34801561007e57600080fd5b506100b3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101e9565b005b3480156100c157600080fd5b506100ca610403565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561011857600080fd5b5061014d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610428565b005b34801561015b57600080fd5b50610164610503565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101b257600080fd5b506101e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610529565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad23de63836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156102a857600080fd5b505af11580156102bc573d6000803e3d6000fd5b505050506040513d60208110156102d257600080fd5b810190808051906020019092919050505015156102ee57600080fd5b816102f761067e565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015610349573d6000803e3d6000fd5b5090508173ffffffffffffffffffffffffffffffffffffffff1663c201293b826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156103e757600080fd5b505af11580156103fb573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561048357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156104bf57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561058457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156105c057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040516123438061068f833901905600608060405234801561001057600080fd5b506040516020806123438339810180604052810190808051906020019092919050505080600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561007057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663798ddbc86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561017857600080fd5b505af115801561018c573d6000803e3d6000fd5b505050506040513d60208110156101a257600080fd5b8101908080519060200190929190505050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612140806102036000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631c88ef1e146100bf578063315a095d1461012757806331e8a7ef146101545780633bc6db30146101ab5780633f7f4f17146101c257806345aff2fa14610219578063798ddbc8146102705780637bb55cd2146102c75780638af6375f1461031e578063a68e5ad014610349578063aafff7e114610376578063eeaba083146103cd575b600080fd5b3480156100cb57600080fd5b5061010a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610444565b604051808381526020018281526020019250505060405180910390f35b34801561013357600080fd5b50610152600480360381019080803590602001909291905050506104be565b005b34801561016057600080fd5b50610195600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610695565b6040518082815260200191505060405180910390f35b3480156101b757600080fd5b506101c06106e4565b005b3480156101ce57600080fd5b50610203600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a98565b6040518082815260200191505060405180910390f35b34801561022557600080fd5b5061025a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae1565b6040518082815260200191505060405180910390f35b34801561027c57600080fd5b50610285610b2d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d357600080fd5b506102dc610b53565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032a57600080fd5b50610333610b78565b6040518082815260200191505060405180910390f35b34801561035557600080fd5b5061037460048036038101908080359060200190929190505050610b7e565b005b34801561038257600080fd5b506103b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eb0565b6040518082815260200191505060405180910390f35b3480156103d957600080fd5b50610442600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610ec8565b005b6000806000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110151561049857fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600061051282600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106433383600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b505050506040513d602081101561060d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16610f7a9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633270bb5b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561076c57600080fd5b505af1158015610780573d6000803e3d6000fd5b505050506040513d602081101561079657600080fd5b810190808051906020019092919050505015156107b257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d60208110156108ef57600080fd5b8101908080519060200190929190505050151561090b57600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010154141515610a4d57610a4c81337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff846001015402600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f348e8b26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a0c57600080fd5b505af1158015610a20573d6000803e3d6000fd5b505050506040513d6020811015610a3657600080fd5b8101908080519060200190929190505050611065565b5b610a95600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104be565b50565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050506040513d6020811015610cbd57600080fd5b81019080805190602001909291905050501515610cd957600080fd5b610d2b82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b9050610e1a333084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610db957600080fd5b505af1158015610dcd573d6000803e3d6000fd5b505050506040513d6020811015610de357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166117cc909392919063ffffffff16565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b60036020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2357600080fd5b610f2e8483836118ec565b610f5b837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8402836118ec565b50505050565b6000828211151515610f6f57fe5b818303905092915050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561101d57600080fd5b505af1158015611031573d6000803e3d6000fd5b505050506040513d602081101561104757600080fd5b8101908080519060200190929190505050151561106057fe5b505050565b6000806000809250849150600087600001805490501415151561108457fe5b5b600082141515611790578660000160018860000180549050038154811015156110aa57fe5b906000526020600020906002020190506110c382611a1b565b6110d08260010154611a1b565b11151561142b576113f373__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561117a57600080fd5b505af115801561118e573d6000803e3d6000fd5b505050506040513d60208110156111a457600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050506040513d602081101561126557600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156112fc57600080fd5b505af1158015611310573d6000803e3d6000fd5b505050506040513d602081101561132657600080fd5b810190808051906020019092919050505086600101548a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b1580156113a957600080fd5b505af41580156113bd573d6000803e3d6000fd5b505050506040513d60208110156113d357600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b925061140c816001015483611a3990919063ffffffff16565b91508660000180548091906001900361142591906120b3565b5061178b565b611442828260010154611a3990919063ffffffff16565b816001018190555061178473__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050506040513d602081101561151757600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156115ae57600080fd5b505af11580156115c2573d6000803e3d6000fd5b505050506040513d60208110156115d857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561166f57600080fd5b505af1158015611683573d6000803e3d6000fd5b505050506040513d602081101561169957600080fd5b81019080805190602001909291905050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88028a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b15801561173a57600080fd5b505af415801561174e573d6000803e3d6000fd5b505050506040513d602081101561176457600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b9250611790565b611085565b6000831415156117a5576117a48684611aa1565b5b50505050505050565b60008082840190508381101515156117c257fe5b8091505092915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156118a357600080fd5b505af11580156118b7573d6000803e3d6000fd5b505050506040513d60208110156118cd57600080fd5b810190808051906020019092919050505015156118e657fe5b50505050565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506000826001015414806119565750611955848360010154611be290919063ffffffff16565b5b1561196c5761196782868686611bfc565b6119f5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840282600101541215156119ac576119a782868686611065565b6119f4565b6119de82867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85600101540286611065565b8382600101540190506119f382868386611bfc565b5b5b611a0c848360010154611a3990919063ffffffff16565b82600101819055505050505050565b600080821215611a3057816000039050611a34565b8190505b919050565b6000808284019050611a4b8484611be2565b1515611a5957809150611a9a565b600084121515611a7f578360ff60019060020a0219038313151515611a7a57fe5b611a96565b8360ff60019060020a02038312151515611a9557fe5b5b8091505b5092915050565b6000611af582600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b5082600154610f6190919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b600081831480611bf457506000828402135b905092915050565b600073__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611c9e57600080fd5b505af1158015611cb2573d6000803e3d6000fd5b505050506040513d6020811015611cc857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611d5f57600080fd5b505af1158015611d73573d6000803e3d6000fd5b505050506040513d6020811015611d8957600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611e2057600080fd5b505af1158015611e34573d6000803e3d6000fd5b505050506040513d6020811015611e4a57600080fd5b810190808051906020019092919050505087876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b158015611ec957600080fd5b505af4158015611edd573d6000803e3d6000fd5b505050506040513d6020811015611ef357600080fd5b81019080805190602001909291905050509050611f108482611f72565b846000016040805190810160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050505050505050565b6000611fc682600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612021826001546117ae90919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b8154818355818111156120e0576002028160020283600052602060002091820191016120df91906120e5565b5b505050565b61211191905b8082111561210d576000808201600090556001820160009055506002016120eb565b5090565b905600a165627a7a72305820b781e2fce2708f6dd40ade78d8837808fe004daf0983e8ce24906bcbd146ee320029a165627a7a72305820e22539e7d71cb24106176950b834fae25398b1ebe7edfb9e7c1d104464390b0a0029", + "bytecode": "0x608060405234801561001057600080fd5b50604051602080612ac183398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129fd806100c46000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636a8da881146100725780638da5cb5b146100b5578063ab7b49931461010c578063ceaaa9151461014f578063f2fde38b146101a6575b600080fd5b34801561007e57600080fd5b506100b3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101e9565b005b3480156100c157600080fd5b506100ca610403565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561011857600080fd5b5061014d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610428565b005b34801561015b57600080fd5b50610164610503565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101b257600080fd5b506101e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610529565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad23de63836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156102a857600080fd5b505af11580156102bc573d6000803e3d6000fd5b505050506040513d60208110156102d257600080fd5b810190808051906020019092919050505015156102ee57600080fd5b816102f761067e565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015610349573d6000803e3d6000fd5b5090508173ffffffffffffffffffffffffffffffffffffffff1663c201293b826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156103e757600080fd5b505af11580156103fb573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561048357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156104bf57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561058457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156105c057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040516123438061068f833901905600608060405234801561001057600080fd5b506040516020806123438339810180604052810190808051906020019092919050505080600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561007057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663798ddbc86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561017857600080fd5b505af115801561018c573d6000803e3d6000fd5b505050506040513d60208110156101a257600080fd5b8101908080519060200190929190505050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612140806102036000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631c88ef1e146100bf578063315a095d1461012757806331e8a7ef146101545780633bc6db30146101ab5780633f7f4f17146101c257806345aff2fa14610219578063798ddbc8146102705780637bb55cd2146102c75780638af6375f1461031e578063a68e5ad014610349578063aafff7e114610376578063eeaba083146103cd575b600080fd5b3480156100cb57600080fd5b5061010a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610444565b604051808381526020018281526020019250505060405180910390f35b34801561013357600080fd5b50610152600480360381019080803590602001909291905050506104be565b005b34801561016057600080fd5b50610195600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610695565b6040518082815260200191505060405180910390f35b3480156101b757600080fd5b506101c06106e4565b005b3480156101ce57600080fd5b50610203600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a98565b6040518082815260200191505060405180910390f35b34801561022557600080fd5b5061025a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae1565b6040518082815260200191505060405180910390f35b34801561027c57600080fd5b50610285610b2d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d357600080fd5b506102dc610b53565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032a57600080fd5b50610333610b78565b6040518082815260200191505060405180910390f35b34801561035557600080fd5b5061037460048036038101908080359060200190929190505050610b7e565b005b34801561038257600080fd5b506103b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eb0565b6040518082815260200191505060405180910390f35b3480156103d957600080fd5b50610442600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610ec8565b005b6000806000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110151561049857fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600061051282600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106433383600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b505050506040513d602081101561060d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16610f7a9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633270bb5b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561076c57600080fd5b505af1158015610780573d6000803e3d6000fd5b505050506040513d602081101561079657600080fd5b810190808051906020019092919050505015156107b257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d60208110156108ef57600080fd5b8101908080519060200190929190505050151561090b57600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010154141515610a4d57610a4c81337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff846001015402600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f348e8b26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a0c57600080fd5b505af1158015610a20573d6000803e3d6000fd5b505050506040513d6020811015610a3657600080fd5b8101908080519060200190929190505050611065565b5b610a95600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104be565b50565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050506040513d6020811015610cbd57600080fd5b81019080805190602001909291905050501515610cd957600080fd5b610d2b82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b9050610e1a333084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610db957600080fd5b505af1158015610dcd573d6000803e3d6000fd5b505050506040513d6020811015610de357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166117cc909392919063ffffffff16565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b60036020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2357600080fd5b610f2e8483836118ec565b610f5b837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8402836118ec565b50505050565b6000828211151515610f6f57fe5b818303905092915050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561101d57600080fd5b505af1158015611031573d6000803e3d6000fd5b505050506040513d602081101561104757600080fd5b8101908080519060200190929190505050151561106057fe5b505050565b6000806000809250849150600087600001805490501415151561108457fe5b5b600082141515611790578660000160018860000180549050038154811015156110aa57fe5b906000526020600020906002020190506110c382611a1b565b6110d08260010154611a1b565b11151561142b576113f373__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561117a57600080fd5b505af115801561118e573d6000803e3d6000fd5b505050506040513d60208110156111a457600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050506040513d602081101561126557600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156112fc57600080fd5b505af1158015611310573d6000803e3d6000fd5b505050506040513d602081101561132657600080fd5b810190808051906020019092919050505086600101548a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b1580156113a957600080fd5b505af41580156113bd573d6000803e3d6000fd5b505050506040513d60208110156113d357600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b925061140c816001015483611a3990919063ffffffff16565b91508660000180548091906001900361142591906120b3565b5061178b565b611442828260010154611a3990919063ffffffff16565b816001018190555061178473__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050506040513d602081101561151757600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156115ae57600080fd5b505af11580156115c2573d6000803e3d6000fd5b505050506040513d60208110156115d857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561166f57600080fd5b505af1158015611683573d6000803e3d6000fd5b505050506040513d602081101561169957600080fd5b81019080805190602001909291905050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88028a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b15801561173a57600080fd5b505af415801561174e573d6000803e3d6000fd5b505050506040513d602081101561176457600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b9250611790565b611085565b6000831415156117a5576117a48684611aa1565b5b50505050505050565b60008082840190508381101515156117c257fe5b8091505092915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156118a357600080fd5b505af11580156118b7573d6000803e3d6000fd5b505050506040513d60208110156118cd57600080fd5b810190808051906020019092919050505015156118e657fe5b50505050565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506000826001015414806119565750611955848360010154611be290919063ffffffff16565b5b1561196c5761196782868686611bfc565b6119f5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840282600101541215156119ac576119a782868686611065565b6119f4565b6119de82867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85600101540286611065565b8382600101540190506119f382868386611bfc565b5b5b611a0c848360010154611a3990919063ffffffff16565b82600101819055505050505050565b600080821215611a3057816000039050611a34565b8190505b919050565b6000808284019050611a4b8484611be2565b1515611a5957809150611a9a565b600084121515611a7f578360ff60019060020a0219038313151515611a7a57fe5b611a96565b8360ff60019060020a02038312151515611a9557fe5b5b8091505b5092915050565b6000611af582600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b5082600154610f6190919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b600081831480611bf457506000828402135b905092915050565b600073__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611c9e57600080fd5b505af1158015611cb2573d6000803e3d6000fd5b505050506040513d6020811015611cc857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611d5f57600080fd5b505af1158015611d73573d6000803e3d6000fd5b505050506040513d6020811015611d8957600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611e2057600080fd5b505af1158015611e34573d6000803e3d6000fd5b505050506040513d6020811015611e4a57600080fd5b810190808051906020019092919050505087876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b158015611ec957600080fd5b505af4158015611edd573d6000803e3d6000fd5b505050506040513d6020811015611ef357600080fd5b81019080805190602001909291905050509050611f108482611f72565b846000016040805190810160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050505050505050565b6000611fc682600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612021826001546117ae90919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b8154818355818111156120e0576002028160020283600052602060002091820191016120df91906120e5565b5b505050565b61211191905b8082111561210d576000808201600090556001820160009055506002016120eb565b5090565b905600a165627a7a72305820b34f6441b257fc1f2777042571cb9bed4da55f2842186e1786cb5e9bfde8ced50029a165627a7a723058202d2d999cbc73e18be378a52a6e474db701065902a63a790f5e1b5429c2d48aaa0029", + "deployedBytecode": "0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636a8da881146100725780638da5cb5b146100b5578063ab7b49931461010c578063ceaaa9151461014f578063f2fde38b146101a6575b600080fd5b34801561007e57600080fd5b506100b3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101e9565b005b3480156100c157600080fd5b506100ca610403565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561011857600080fd5b5061014d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610428565b005b34801561015b57600080fd5b50610164610503565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101b257600080fd5b506101e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610529565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad23de63836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156102a857600080fd5b505af11580156102bc573d6000803e3d6000fd5b505050506040513d60208110156102d257600080fd5b810190808051906020019092919050505015156102ee57600080fd5b816102f761067e565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015610349573d6000803e3d6000fd5b5090508173ffffffffffffffffffffffffffffffffffffffff1663c201293b826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156103e757600080fd5b505af11580156103fb573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561048357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156104bf57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561058457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156105c057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040516123438061068f833901905600608060405234801561001057600080fd5b506040516020806123438339810180604052810190808051906020019092919050505080600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561007057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663798ddbc86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561017857600080fd5b505af115801561018c573d6000803e3d6000fd5b505050506040513d60208110156101a257600080fd5b8101908080519060200190929190505050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612140806102036000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631c88ef1e146100bf578063315a095d1461012757806331e8a7ef146101545780633bc6db30146101ab5780633f7f4f17146101c257806345aff2fa14610219578063798ddbc8146102705780637bb55cd2146102c75780638af6375f1461031e578063a68e5ad014610349578063aafff7e114610376578063eeaba083146103cd575b600080fd5b3480156100cb57600080fd5b5061010a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610444565b604051808381526020018281526020019250505060405180910390f35b34801561013357600080fd5b50610152600480360381019080803590602001909291905050506104be565b005b34801561016057600080fd5b50610195600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610695565b6040518082815260200191505060405180910390f35b3480156101b757600080fd5b506101c06106e4565b005b3480156101ce57600080fd5b50610203600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a98565b6040518082815260200191505060405180910390f35b34801561022557600080fd5b5061025a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae1565b6040518082815260200191505060405180910390f35b34801561027c57600080fd5b50610285610b2d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d357600080fd5b506102dc610b53565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032a57600080fd5b50610333610b78565b6040518082815260200191505060405180910390f35b34801561035557600080fd5b5061037460048036038101908080359060200190929190505050610b7e565b005b34801561038257600080fd5b506103b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eb0565b6040518082815260200191505060405180910390f35b3480156103d957600080fd5b50610442600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610ec8565b005b6000806000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110151561049857fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600061051282600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106433383600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b505050506040513d602081101561060d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16610f7a9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633270bb5b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561076c57600080fd5b505af1158015610780573d6000803e3d6000fd5b505050506040513d602081101561079657600080fd5b810190808051906020019092919050505015156107b257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d60208110156108ef57600080fd5b8101908080519060200190929190505050151561090b57600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010154141515610a4d57610a4c81337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff846001015402600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f348e8b26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a0c57600080fd5b505af1158015610a20573d6000803e3d6000fd5b505050506040513d6020811015610a3657600080fd5b8101908080519060200190929190505050611065565b5b610a95600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104be565b50565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050506040513d6020811015610cbd57600080fd5b81019080805190602001909291905050501515610cd957600080fd5b610d2b82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b9050610e1a333084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663323bb7756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610db957600080fd5b505af1158015610dcd573d6000803e3d6000fd5b505050506040513d6020811015610de357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166117cc909392919063ffffffff16565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a25050565b60036020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2357600080fd5b610f2e8483836118ec565b610f5b837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8402836118ec565b50505050565b6000828211151515610f6f57fe5b818303905092915050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561101d57600080fd5b505af1158015611031573d6000803e3d6000fd5b505050506040513d602081101561104757600080fd5b8101908080519060200190929190505050151561106057fe5b505050565b6000806000809250849150600087600001805490501415151561108457fe5b5b600082141515611790578660000160018860000180549050038154811015156110aa57fe5b906000526020600020906002020190506110c382611a1b565b6110d08260010154611a1b565b11151561142b576113f373__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561117a57600080fd5b505af115801561118e573d6000803e3d6000fd5b505050506040513d60208110156111a457600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050506040513d602081101561126557600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156112fc57600080fd5b505af1158015611310573d6000803e3d6000fd5b505050506040513d602081101561132657600080fd5b810190808051906020019092919050505086600101548a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b1580156113a957600080fd5b505af41580156113bd573d6000803e3d6000fd5b505050506040513d60208110156113d357600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b925061140c816001015483611a3990919063ffffffff16565b91508660000180548091906001900361142591906120b3565b5061178b565b611442828260010154611a3990919063ffffffff16565b816001018190555061178473__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050506040513d602081101561151757600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156115ae57600080fd5b505af11580156115c2573d6000803e3d6000fd5b505050506040513d60208110156115d857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561166f57600080fd5b505af1158015611683573d6000803e3d6000fd5b505050506040513d602081101561169957600080fd5b81019080805190602001909291905050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88028a6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b15801561173a57600080fd5b505af415801561174e573d6000803e3d6000fd5b505050506040513d602081101561176457600080fd5b8101908080519060200190929190505050846117ae90919063ffffffff16565b9250611790565b611085565b6000831415156117a5576117a48684611aa1565b5b50505050505050565b60008082840190508381101515156117c257fe5b8091505092915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156118a357600080fd5b505af11580156118b7573d6000803e3d6000fd5b505050506040513d60208110156118cd57600080fd5b810190808051906020019092919050505015156118e657fe5b50505050565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506000826001015414806119565750611955848360010154611be290919063ffffffff16565b5b1561196c5761196782868686611bfc565b6119f5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840282600101541215156119ac576119a782868686611065565b6119f4565b6119de82867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85600101540286611065565b8382600101540190506119f382868386611bfc565b5b5b611a0c848360010154611a3990919063ffffffff16565b82600101819055505050505050565b600080821215611a3057816000039050611a34565b8190505b919050565b6000808284019050611a4b8484611be2565b1515611a5957809150611a9a565b600084121515611a7f578360ff60019060020a0219038313151515611a7a57fe5b611a96565b8360ff60019060020a02038312151515611a9557fe5b5b8091505b5092915050565b6000611af582600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ae90919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b5082600154610f6190919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b600081831480611bf457506000828402135b905092915050565b600073__MathLib_______________________________63ed981d4f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c32b1dfa6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611c9e57600080fd5b505af1158015611cb2573d6000803e3d6000fd5b505050506040513d6020811015611cc857600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5471dee6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611d5f57600080fd5b505af1158015611d73573d6000803e3d6000fd5b505050506040513d6020811015611d8957600080fd5b8101908080519060200190929190505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca361d676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611e2057600080fd5b505af1158015611e34573d6000803e3d6000fd5b505050506040513d6020811015611e4a57600080fd5b810190808051906020019092919050505087876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b158015611ec957600080fd5b505af4158015611edd573d6000803e3d6000fd5b505050506040513d6020811015611ef357600080fd5b81019080805190602001909291905050509050611f108482611f72565b846000016040805190810160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050505050505050565b6000611fc682600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6190919063ffffffff16565b905080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612021826001546117ae90919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff167f60ede3b17b4e31768b93d5237d5fceb759f4d879bc5bb7c916a42ebaa311e6e6826040518082815260200191505060405180910390a27fc6203b6a88d29510779ca9dba6a5e132f609c335e49a244d6d9e842ebaabb2706001546040518082815260200191505060405180910390a1505050565b8154818355818111156120e0576002028160020283600052602060002091820191016120df91906120e5565b5b505050565b61211191905b8082111561210d576000808201600090556001820160009055506002016120eb565b5090565b905600a165627a7a72305820b34f6441b257fc1f2777042571cb9bed4da55f2842186e1786cb5e9bfde8ced50029a165627a7a723058202d2d999cbc73e18be378a52a6e474db701065902a63a790f5e1b5429c2d48aaa0029", "sourceMap": "840:1307:7:-;;;1139:102;8:9:-1;5:2;;;30:1;27;20:12;5:2;1139:102:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;509:10:25;501:5;;:18;;;;;;;;;;;;;;;;;;1218:15:7;1193:22;;:40;;;;;;;;;;;;;;;;;;1139:102;840:1307;;;;;;", "deployedSourceMap": "840:1307:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1416:404;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1416:404:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;1968:177:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1968:177:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;933:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;933:37:7;;;;;;;;;;;;;;;;;;;;;;;;;;;832:174:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;832:174:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;1416:404:7;1620:41;1542:22;;;;;;;;;;;1510:76;;;1587:21;1510:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1510:99:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1510:99:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1510:99:7;;;;;;;;;;;;;;;;1502:108;;;;;;;;1689:21;1664:47;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1664:47:7;1620:91;;1736:21;1721:70;;;1792:20;1721:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1721:92:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1721:92:7;;;;1416:404;;:::o;238:20:25:-;;;;;;;;;;;;;:::o;1968:177:7:-;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;2085:1:7;2058:29;;:15;:29;;;;2050:38;;;;;;;;2123:15;2098:22;;:40;;;;;;;;;;;;;;;;;;1968:177;:::o;933:37::-;;;;;;;;;;;;;:::o;832:174:25:-;653:5;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;928:1;908:22;;:8;:22;;;;900:31;;;;;;;;970:8;942:37;;963:5;;;;;;;;;;;942:37;;;;;;;;;;;;993:8;985:5;;:16;;;;;;;;;;;;;;;;;;832:174;:::o;840:1307:7:-;;;;;;;;;;:::o", "source": "/*\n Copyright 2017-2018 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity ^0.4.24;\n\nimport \"../MarketCollateralPool.sol\";\nimport \"./MarketCollateralPoolFactoryInterface.sol\";\nimport \"../MarketContractRegistryInterface.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n\ncontract MarketCollateralPoolFactory is Ownable, MarketCollateralPoolFactoryInterface {\n\n address public marketContractRegistry;\n\n /// @dev deploys our factory and ties it the a supply registry address\n /// @param registryAddress - MarketContractRegistry address to whitelist contracts\n constructor(address registryAddress) public {\n marketContractRegistry = registryAddress;\n\n }\n\n /// @dev creates the needed collateral pool and links it to our market contract.\n /// @param marketContractAddress address of the newly deployed market contract.\n function deployMarketCollateralPool(address marketContractAddress) external {\n require(MarketContractRegistryInterface(marketContractRegistry).isAddressWhiteListed(marketContractAddress));\n MarketCollateralPool marketCollateralPool = new MarketCollateralPool(marketContractAddress);\n MarketContract(marketContractAddress).setCollateralPoolContractAddress(marketCollateralPool);\n }\n\n /// @dev allows for the owner to set the desired registry for contract creation.\n /// @param registryAddress desired registry address.\n function setRegistryAddress(address registryAddress) external onlyOwner {\n require(registryAddress != address(0));\n marketContractRegistry = registryAddress;\n }\n}\n", - "sourcePath": "/home/parallels/MARKETProtocol/contracts/factories/MarketCollateralPoolFactory.sol", + "sourcePath": "/home/pelsasser/MARKETProtocol/contracts/factories/MarketCollateralPoolFactory.sol", "ast": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/factories/MarketCollateralPoolFactory.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/factories/MarketCollateralPoolFactory.sol", "exportedSymbols": { "MarketCollateralPoolFactory": [ 1861 @@ -128,7 +128,7 @@ "src": "608:24:7" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketCollateralPool.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketCollateralPool.sol", "file": "../MarketCollateralPool.sol", "id": 1792, "nodeType": "ImportDirective", @@ -139,7 +139,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", "file": "./MarketCollateralPoolFactoryInterface.sol", "id": 1793, "nodeType": "ImportDirective", @@ -150,7 +150,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", "file": "../MarketContractRegistryInterface.sol", "id": 1794, "nodeType": "ImportDirective", @@ -1042,7 +1042,7 @@ "src": "608:1540:7" }, "legacyAST": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/factories/MarketCollateralPoolFactory.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/factories/MarketCollateralPoolFactory.sol", "exportedSymbols": { "MarketCollateralPoolFactory": [ 1861 @@ -1063,7 +1063,7 @@ "src": "608:24:7" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketCollateralPool.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketCollateralPool.sol", "file": "../MarketCollateralPool.sol", "id": 1792, "nodeType": "ImportDirective", @@ -1074,7 +1074,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", "file": "./MarketCollateralPoolFactoryInterface.sol", "id": 1793, "nodeType": "ImportDirective", @@ -1085,7 +1085,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", "file": "../MarketContractRegistryInterface.sol", "id": 1794, "nodeType": "ImportDirective", @@ -1984,12 +1984,12 @@ "4": { "events": {}, "links": { - "MathLib": "0x28b39df6f57adf357e01c47be86527d6f8c85833" + "MathLib": "0x254962dd15db2c9b57e612f1aaefb2ae5e33f107" }, - "address": "0xa8a835c747846ab9aa886c5046fae6d3f10abeb2", - "transactionHash": "0xd2e6ba2207ee110e04d2ebaa0e85f145f359e73f16ddf9d751bbf7235dddbf4a" + "address": "0x2b451dc7695d7c0800e14fdc3192e0ee7d2a7327", + "transactionHash": "0x708a1c89111188dc87a47e90a8a470d630b9cd0d7cdfa469d9b4260fa7142204" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-09-07T17:31:18.235Z" + "updatedAt": "2018-09-07T18:28:49.239Z" } \ No newline at end of file diff --git a/build/contracts/MarketContractFactoryOraclize.json b/build/contracts/MarketContractFactoryOraclize.json index eb9710b..b21a30e 100644 --- a/build/contracts/MarketContractFactoryOraclize.json +++ b/build/contracts/MarketContractFactoryOraclize.json @@ -169,14 +169,14 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506040516060806160d5833981018060405281019080805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050615f798061015c6000396000f3006080604052600436106200008a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680629d553c146200008f578063798ddbc814620000e95780638da5cb5b1462000143578063ab7b4993146200019d578063ceaaa91514620001e3578063f2fde38b146200023d578063fdea945f1462000283575b600080fd5b3480156200009c57600080fd5b50620000a76200031b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620000f657600080fd5b506200010162000341565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200015057600080fd5b506200015b62000367565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620001aa57600080fd5b50620001e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200038c565b005b348015620001f057600080fd5b50620001fb62000469565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200024a57600080fd5b5062000281600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200048f565b005b3480156200029057600080fd5b5062000319600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908060a001909192919290803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050620005e6565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620003e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200042557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620004eb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200052857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000888833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b8b8b8b8b62000641620008dc565b80806020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001876005602002808284378201915050806020018060200184810384528f8f82818152602001925080828437820191505084810383528888828181526020019250808284378201915050848103825286868281815260200192508082843782019150509e505050505050505050505050505050604051809103906000f0801580156200079d573d6000803e3d6000fd5b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639244f496826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156200085e57600080fd5b505af115801562000873573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f38ee3ff13b5d3453452a79e0799d83b2c8207bf126b2798fa512343680f643ee60405160405180910390a3505050505050505050565b60405161566080620008ee83390190560060806040526000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200566038038062005660833981018060405281019080805182019291906020018051906020019092919080519060200190929190805190602001909291908051906020019092919091908260a0018051820192919060200180518201929190505050878787878787336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384281dcc336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156200027557600080fd5b505af11580156200028a573d6000803e3d6000fd5b505050506040513d6020811015620002a157600080fd5b81019080805190602001909291905050501515620002be57600080fd5b806000600581101515620002ce57fe5b6020020151600781905550806001600581101515620002e957fe5b60200201516006819055506007546006541115156200030757600080fd5b8060026005811015156200031757fe5b60200201516008819055508060036005811015156200033257fe5b60200201516009819055508060046005811015156200034d57fe5b6020020151600a8190555042600a541115156200036957600080fd5b856004908051906020019062000381929190620015b9565b5082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200046b60017f01000000000000000000000000000000000000000000000000000000000000000260107f01000000000000000000000000000000000000000000000000000000000000000217620004db640100000000026401000000009004565b816014908051906020019062000483929190620015b9565b5080601590805190602001906200049c929190620015b9565b50624f1a0042600a540311151515620004b457600080fd5b620004cd62000893640100000000026401000000009004565b505050505050505062001668565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806200055e575060006200055c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000581576200057f600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200060857600080fd5b505af11580156200061d573d6000803e3d6000fd5b505050506040513d60208110156200063457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515620007a157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200072357600080fd5b505af115801562000738573d6000803e3d6000fd5b505050506040513d60208110156200074f57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663688dcfd7826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050600060405180830381600087803b1580156200087757600080fd5b505af11580156200088c573d6000803e3d6000fd5b5050505050565b6000620009f3600a5460148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009365780601f106200090a5761010080835404028352916020019162000936565b820191906000526020600020905b8154815290600101906020018083116200091857829003601f168201915b505050505060158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009d55780601f10620009a957610100808354040283529160200191620009d5565b820191906000526020600020905b815481529060010190602001808311620009b757829003601f168201915b5050505050620249f062000a71640100000000026401000000009004565b9050600060010281600019161415151562000a0d57600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000813b9050919050565b600062000a6a6200103e640100000000026401000000009004565b9050919050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148062000af75750600062000af5601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000b1a5762000b18600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000ba157600080fd5b505af115801562000bb6573d6000803e3d6000fd5b505050506040513d602081101562000bcd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151562000d3a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000cbc57600080fd5b505af115801562000cd1573d6000803e3d6000fd5b505050506040513d602081101562000ce857600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101562000ded57808201518184015260208101905062000dd0565b50505050905090810190601f16801562000e1b5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801562000e3c57600080fd5b505af115801562000e51573d6000803e3d6000fd5b505050506040513d602081101562000e6857600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f82888888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562000f3b57808201518184015260208101905062000f1e565b50505050905090810190601f16801562000f695780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101562000fa457808201518184015260208101905062000f87565b50505050905090810190601f16801562000fd25780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801562000ff557600080fd5b505af11580156200100a573d6000803e3d6000fd5b50505050506040513d60208110156200102257600080fd5b8101908080519060200190929190505050915050949350505050565b6000806200106f731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed62000a44640100000000026401000000009004565b11156200112457731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200111a6040805190810160405280600b81526020017f6574685f6d61696e6e65740000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200115473c03a2615d5efaf5f49f60b7bb6583eaec212fdf162000a44640100000000026401000000009004565b1115620012095773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620011ff6040805190810160405280600c81526020017f6574685f726f707374656e3300000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200123973b7a07bcf2ba2f2703b24c0691b5278999c59ac7e62000a44640100000000026401000000009004565b1115620012ee5773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620012e46040805190810160405280600981526020017f6574685f6b6f76616e00000000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200131e73146500cfd35b22e4a392fe0adc06de1a1368ed4862000a44640100000000026401000000009004565b1115620013d35773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620013c96040805190810160405280600b81526020017f6574685f72696e6b6562790000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b600062001403736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47562000a44640100000000026401000000009004565b11156200146957736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b6000620014997320e12a1f859b3feae5fb2a0a32c18f5a65555bbf62000a44640100000000026401000000009004565b1115620014ff577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b60006200152f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa62000a44640100000000026401000000009004565b111562001595577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b600090505b90565b8060139080519060200190620015b5929190620015b9565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620015fc57805160ff19168380011785556200162d565b828001600101855582156200162d579182015b828111156200162c5782518255916020019190600101906200160f565b5b5090506200163c919062001640565b5090565b6200166591905b808211156200166157600081600090555060010162001647565b5090565b90565b613fe880620016786000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a723058203efc5ed5666ae0e73f727f12f9beeab30676fc0e6e29e27bf13bcc4a0051dc020029a165627a7a72305820a04a68803ff51f0c0c3968747abebf0cda9933611d7b570f98613f3021f2bbb80029", - "deployedBytecode": "0x6080604052600436106200008a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680629d553c146200008f578063798ddbc814620000e95780638da5cb5b1462000143578063ab7b4993146200019d578063ceaaa91514620001e3578063f2fde38b146200023d578063fdea945f1462000283575b600080fd5b3480156200009c57600080fd5b50620000a76200031b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620000f657600080fd5b506200010162000341565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200015057600080fd5b506200015b62000367565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620001aa57600080fd5b50620001e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200038c565b005b348015620001f057600080fd5b50620001fb62000469565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200024a57600080fd5b5062000281600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200048f565b005b3480156200029057600080fd5b5062000319600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908060a001909192919290803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050620005e6565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620003e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200042557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620004eb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200052857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000888833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b8b8b8b8b62000641620008dc565b80806020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001876005602002808284378201915050806020018060200184810384528f8f82818152602001925080828437820191505084810383528888828181526020019250808284378201915050848103825286868281815260200192508082843782019150509e505050505050505050505050505050604051809103906000f0801580156200079d573d6000803e3d6000fd5b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639244f496826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156200085e57600080fd5b505af115801562000873573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f38ee3ff13b5d3453452a79e0799d83b2c8207bf126b2798fa512343680f643ee60405160405180910390a3505050505050505050565b60405161566080620008ee83390190560060806040526000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200566038038062005660833981018060405281019080805182019291906020018051906020019092919080519060200190929190805190602001909291908051906020019092919091908260a0018051820192919060200180518201929190505050878787878787336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384281dcc336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156200027557600080fd5b505af11580156200028a573d6000803e3d6000fd5b505050506040513d6020811015620002a157600080fd5b81019080805190602001909291905050501515620002be57600080fd5b806000600581101515620002ce57fe5b6020020151600781905550806001600581101515620002e957fe5b60200201516006819055506007546006541115156200030757600080fd5b8060026005811015156200031757fe5b60200201516008819055508060036005811015156200033257fe5b60200201516009819055508060046005811015156200034d57fe5b6020020151600a8190555042600a541115156200036957600080fd5b856004908051906020019062000381929190620015b9565b5082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200046b60017f01000000000000000000000000000000000000000000000000000000000000000260107f01000000000000000000000000000000000000000000000000000000000000000217620004db640100000000026401000000009004565b816014908051906020019062000483929190620015b9565b5080601590805190602001906200049c929190620015b9565b50624f1a0042600a540311151515620004b457600080fd5b620004cd62000893640100000000026401000000009004565b505050505050505062001668565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806200055e575060006200055c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000581576200057f600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200060857600080fd5b505af11580156200061d573d6000803e3d6000fd5b505050506040513d60208110156200063457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515620007a157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200072357600080fd5b505af115801562000738573d6000803e3d6000fd5b505050506040513d60208110156200074f57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663688dcfd7826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050600060405180830381600087803b1580156200087757600080fd5b505af11580156200088c573d6000803e3d6000fd5b5050505050565b6000620009f3600a5460148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009365780601f106200090a5761010080835404028352916020019162000936565b820191906000526020600020905b8154815290600101906020018083116200091857829003601f168201915b505050505060158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009d55780601f10620009a957610100808354040283529160200191620009d5565b820191906000526020600020905b815481529060010190602001808311620009b757829003601f168201915b5050505050620249f062000a71640100000000026401000000009004565b9050600060010281600019161415151562000a0d57600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000813b9050919050565b600062000a6a6200103e640100000000026401000000009004565b9050919050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148062000af75750600062000af5601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000b1a5762000b18600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000ba157600080fd5b505af115801562000bb6573d6000803e3d6000fd5b505050506040513d602081101562000bcd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151562000d3a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000cbc57600080fd5b505af115801562000cd1573d6000803e3d6000fd5b505050506040513d602081101562000ce857600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101562000ded57808201518184015260208101905062000dd0565b50505050905090810190601f16801562000e1b5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801562000e3c57600080fd5b505af115801562000e51573d6000803e3d6000fd5b505050506040513d602081101562000e6857600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f82888888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562000f3b57808201518184015260208101905062000f1e565b50505050905090810190601f16801562000f695780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101562000fa457808201518184015260208101905062000f87565b50505050905090810190601f16801562000fd25780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801562000ff557600080fd5b505af11580156200100a573d6000803e3d6000fd5b50505050506040513d60208110156200102257600080fd5b8101908080519060200190929190505050915050949350505050565b6000806200106f731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed62000a44640100000000026401000000009004565b11156200112457731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200111a6040805190810160405280600b81526020017f6574685f6d61696e6e65740000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200115473c03a2615d5efaf5f49f60b7bb6583eaec212fdf162000a44640100000000026401000000009004565b1115620012095773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620011ff6040805190810160405280600c81526020017f6574685f726f707374656e3300000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200123973b7a07bcf2ba2f2703b24c0691b5278999c59ac7e62000a44640100000000026401000000009004565b1115620012ee5773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620012e46040805190810160405280600981526020017f6574685f6b6f76616e00000000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200131e73146500cfd35b22e4a392fe0adc06de1a1368ed4862000a44640100000000026401000000009004565b1115620013d35773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620013c96040805190810160405280600b81526020017f6574685f72696e6b6562790000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b600062001403736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47562000a44640100000000026401000000009004565b11156200146957736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b6000620014997320e12a1f859b3feae5fb2a0a32c18f5a65555bbf62000a44640100000000026401000000009004565b1115620014ff577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b60006200152f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa62000a44640100000000026401000000009004565b111562001595577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b600090505b90565b8060139080519060200190620015b5929190620015b9565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620015fc57805160ff19168380011785556200162d565b828001600101855582156200162d579182015b828111156200162c5782518255916020019190600101906200160f565b5b5090506200163c919062001640565b5090565b6200166591905b808211156200166157600081600090555060010162001647565b5090565b90565b613fe880620016786000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a723058203efc5ed5666ae0e73f727f12f9beeab30676fc0e6e29e27bf13bcc4a0051dc020029a165627a7a72305820a04a68803ff51f0c0c3968747abebf0cda9933611d7b570f98613f3021f2bbb80029", + "bytecode": "0x608060405234801561001057600080fd5b506040516060806160d5833981018060405281019080805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050615f798061015c6000396000f3006080604052600436106200008a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680629d553c146200008f578063798ddbc814620000e95780638da5cb5b1462000143578063ab7b4993146200019d578063ceaaa91514620001e3578063f2fde38b146200023d578063fdea945f1462000283575b600080fd5b3480156200009c57600080fd5b50620000a76200031b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620000f657600080fd5b506200010162000341565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200015057600080fd5b506200015b62000367565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620001aa57600080fd5b50620001e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200038c565b005b348015620001f057600080fd5b50620001fb62000469565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200024a57600080fd5b5062000281600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200048f565b005b3480156200029057600080fd5b5062000319600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908060a001909192919290803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050620005e6565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620003e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200042557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620004eb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200052857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000888833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b8b8b8b8b62000641620008dc565b80806020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001876005602002808284378201915050806020018060200184810384528f8f82818152602001925080828437820191505084810383528888828181526020019250808284378201915050848103825286868281815260200192508082843782019150509e505050505050505050505050505050604051809103906000f0801580156200079d573d6000803e3d6000fd5b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639244f496826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156200085e57600080fd5b505af115801562000873573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f38ee3ff13b5d3453452a79e0799d83b2c8207bf126b2798fa512343680f643ee60405160405180910390a3505050505050505050565b60405161566080620008ee83390190560060806040526000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200566038038062005660833981018060405281019080805182019291906020018051906020019092919080519060200190929190805190602001909291908051906020019092919091908260a0018051820192919060200180518201929190505050878787878787336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384281dcc336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156200027557600080fd5b505af11580156200028a573d6000803e3d6000fd5b505050506040513d6020811015620002a157600080fd5b81019080805190602001909291905050501515620002be57600080fd5b806000600581101515620002ce57fe5b6020020151600781905550806001600581101515620002e957fe5b60200201516006819055506007546006541115156200030757600080fd5b8060026005811015156200031757fe5b60200201516008819055508060036005811015156200033257fe5b60200201516009819055508060046005811015156200034d57fe5b6020020151600a8190555042600a541115156200036957600080fd5b856004908051906020019062000381929190620015b9565b5082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200046b60017f01000000000000000000000000000000000000000000000000000000000000000260107f01000000000000000000000000000000000000000000000000000000000000000217620004db640100000000026401000000009004565b816014908051906020019062000483929190620015b9565b5080601590805190602001906200049c929190620015b9565b50624f1a0042600a540311151515620004b457600080fd5b620004cd62000893640100000000026401000000009004565b505050505050505062001668565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806200055e575060006200055c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000581576200057f600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200060857600080fd5b505af11580156200061d573d6000803e3d6000fd5b505050506040513d60208110156200063457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515620007a157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200072357600080fd5b505af115801562000738573d6000803e3d6000fd5b505050506040513d60208110156200074f57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663688dcfd7826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050600060405180830381600087803b1580156200087757600080fd5b505af11580156200088c573d6000803e3d6000fd5b5050505050565b6000620009f3600a5460148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009365780601f106200090a5761010080835404028352916020019162000936565b820191906000526020600020905b8154815290600101906020018083116200091857829003601f168201915b505050505060158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009d55780601f10620009a957610100808354040283529160200191620009d5565b820191906000526020600020905b815481529060010190602001808311620009b757829003601f168201915b5050505050620249f062000a71640100000000026401000000009004565b9050600060010281600019161415151562000a0d57600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000813b9050919050565b600062000a6a6200103e640100000000026401000000009004565b9050919050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148062000af75750600062000af5601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000b1a5762000b18600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000ba157600080fd5b505af115801562000bb6573d6000803e3d6000fd5b505050506040513d602081101562000bcd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151562000d3a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000cbc57600080fd5b505af115801562000cd1573d6000803e3d6000fd5b505050506040513d602081101562000ce857600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101562000ded57808201518184015260208101905062000dd0565b50505050905090810190601f16801562000e1b5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801562000e3c57600080fd5b505af115801562000e51573d6000803e3d6000fd5b505050506040513d602081101562000e6857600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f82888888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562000f3b57808201518184015260208101905062000f1e565b50505050905090810190601f16801562000f695780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101562000fa457808201518184015260208101905062000f87565b50505050905090810190601f16801562000fd25780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801562000ff557600080fd5b505af11580156200100a573d6000803e3d6000fd5b50505050506040513d60208110156200102257600080fd5b8101908080519060200190929190505050915050949350505050565b6000806200106f731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed62000a44640100000000026401000000009004565b11156200112457731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200111a6040805190810160405280600b81526020017f6574685f6d61696e6e65740000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200115473c03a2615d5efaf5f49f60b7bb6583eaec212fdf162000a44640100000000026401000000009004565b1115620012095773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620011ff6040805190810160405280600c81526020017f6574685f726f707374656e3300000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200123973b7a07bcf2ba2f2703b24c0691b5278999c59ac7e62000a44640100000000026401000000009004565b1115620012ee5773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620012e46040805190810160405280600981526020017f6574685f6b6f76616e00000000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200131e73146500cfd35b22e4a392fe0adc06de1a1368ed4862000a44640100000000026401000000009004565b1115620013d35773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620013c96040805190810160405280600b81526020017f6574685f72696e6b6562790000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b600062001403736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47562000a44640100000000026401000000009004565b11156200146957736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b6000620014997320e12a1f859b3feae5fb2a0a32c18f5a65555bbf62000a44640100000000026401000000009004565b1115620014ff577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b60006200152f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa62000a44640100000000026401000000009004565b111562001595577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b600090505b90565b8060139080519060200190620015b5929190620015b9565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620015fc57805160ff19168380011785556200162d565b828001600101855582156200162d579182015b828111156200162c5782518255916020019190600101906200160f565b5b5090506200163c919062001640565b5090565b6200166591905b808211156200166157600081600090555060010162001647565b5090565b90565b613fe880620016786000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a72305820a52ccf48e4f2c6de7aa2cc11611e9627242651c5eabcc2d8d6ba2fde0bc057ba0029a165627a7a72305820eabcc9e89451c85cb9df7433d8a3be693b4d974b6ae4e490d81c15b8f17fefd70029", + "deployedBytecode": "0x6080604052600436106200008a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680629d553c146200008f578063798ddbc814620000e95780638da5cb5b1462000143578063ab7b4993146200019d578063ceaaa91514620001e3578063f2fde38b146200023d578063fdea945f1462000283575b600080fd5b3480156200009c57600080fd5b50620000a76200031b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620000f657600080fd5b506200010162000341565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200015057600080fd5b506200015b62000367565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620001aa57600080fd5b50620001e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200038c565b005b348015620001f057600080fd5b50620001fb62000469565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200024a57600080fd5b5062000281600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200048f565b005b3480156200029057600080fd5b5062000319600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908060a001909192919290803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050620005e6565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620003e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200042557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620004eb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200052857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000888833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b8b8b8b8b62000641620008dc565b80806020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001876005602002808284378201915050806020018060200184810384528f8f82818152602001925080828437820191505084810383528888828181526020019250808284378201915050848103825286868281815260200192508082843782019150509e505050505050505050505050505050604051809103906000f0801580156200079d573d6000803e3d6000fd5b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639244f496826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156200085e57600080fd5b505af115801562000873573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f38ee3ff13b5d3453452a79e0799d83b2c8207bf126b2798fa512343680f643ee60405160405180910390a3505050505050505050565b60405161566080620008ee83390190560060806040526000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200566038038062005660833981018060405281019080805182019291906020018051906020019092919080519060200190929190805190602001909291908051906020019092919091908260a0018051820192919060200180518201929190505050878787878787336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384281dcc336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156200027557600080fd5b505af11580156200028a573d6000803e3d6000fd5b505050506040513d6020811015620002a157600080fd5b81019080805190602001909291905050501515620002be57600080fd5b806000600581101515620002ce57fe5b6020020151600781905550806001600581101515620002e957fe5b60200201516006819055506007546006541115156200030757600080fd5b8060026005811015156200031757fe5b60200201516008819055508060036005811015156200033257fe5b60200201516009819055508060046005811015156200034d57fe5b6020020151600a8190555042600a541115156200036957600080fd5b856004908051906020019062000381929190620015b9565b5082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200046b60017f01000000000000000000000000000000000000000000000000000000000000000260107f01000000000000000000000000000000000000000000000000000000000000000217620004db640100000000026401000000009004565b816014908051906020019062000483929190620015b9565b5080601590805190602001906200049c929190620015b9565b50624f1a0042600a540311151515620004b457600080fd5b620004cd62000893640100000000026401000000009004565b505050505050505062001668565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806200055e575060006200055c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000581576200057f600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200060857600080fd5b505af11580156200061d573d6000803e3d6000fd5b505050506040513d60208110156200063457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515620007a157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200072357600080fd5b505af115801562000738573d6000803e3d6000fd5b505050506040513d60208110156200074f57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663688dcfd7826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050600060405180830381600087803b1580156200087757600080fd5b505af11580156200088c573d6000803e3d6000fd5b5050505050565b6000620009f3600a5460148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009365780601f106200090a5761010080835404028352916020019162000936565b820191906000526020600020905b8154815290600101906020018083116200091857829003601f168201915b505050505060158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009d55780601f10620009a957610100808354040283529160200191620009d5565b820191906000526020600020905b815481529060010190602001808311620009b757829003601f168201915b5050505050620249f062000a71640100000000026401000000009004565b9050600060010281600019161415151562000a0d57600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000813b9050919050565b600062000a6a6200103e640100000000026401000000009004565b9050919050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148062000af75750600062000af5601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000b1a5762000b18600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000ba157600080fd5b505af115801562000bb6573d6000803e3d6000fd5b505050506040513d602081101562000bcd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151562000d3a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000cbc57600080fd5b505af115801562000cd1573d6000803e3d6000fd5b505050506040513d602081101562000ce857600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101562000ded57808201518184015260208101905062000dd0565b50505050905090810190601f16801562000e1b5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801562000e3c57600080fd5b505af115801562000e51573d6000803e3d6000fd5b505050506040513d602081101562000e6857600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f82888888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562000f3b57808201518184015260208101905062000f1e565b50505050905090810190601f16801562000f695780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101562000fa457808201518184015260208101905062000f87565b50505050905090810190601f16801562000fd25780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801562000ff557600080fd5b505af11580156200100a573d6000803e3d6000fd5b50505050506040513d60208110156200102257600080fd5b8101908080519060200190929190505050915050949350505050565b6000806200106f731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed62000a44640100000000026401000000009004565b11156200112457731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200111a6040805190810160405280600b81526020017f6574685f6d61696e6e65740000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200115473c03a2615d5efaf5f49f60b7bb6583eaec212fdf162000a44640100000000026401000000009004565b1115620012095773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620011ff6040805190810160405280600c81526020017f6574685f726f707374656e3300000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200123973b7a07bcf2ba2f2703b24c0691b5278999c59ac7e62000a44640100000000026401000000009004565b1115620012ee5773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620012e46040805190810160405280600981526020017f6574685f6b6f76616e00000000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200131e73146500cfd35b22e4a392fe0adc06de1a1368ed4862000a44640100000000026401000000009004565b1115620013d35773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620013c96040805190810160405280600b81526020017f6574685f72696e6b6562790000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b600062001403736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47562000a44640100000000026401000000009004565b11156200146957736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b6000620014997320e12a1f859b3feae5fb2a0a32c18f5a65555bbf62000a44640100000000026401000000009004565b1115620014ff577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b60006200152f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa62000a44640100000000026401000000009004565b111562001595577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b600090505b90565b8060139080519060200190620015b5929190620015b9565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620015fc57805160ff19168380011785556200162d565b828001600101855582156200162d579182015b828111156200162c5782518255916020019190600101906200160f565b5b5090506200163c919062001640565b5090565b6200166591905b808211156200166157600081600090555060010162001647565b5090565b90565b613fe880620016786000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a72305820a52ccf48e4f2c6de7aa2cc11611e9627242651c5eabcc2d8d6ba2fde0bc057ba0029a165627a7a72305820eabcc9e89451c85cb9df7433d8a3be693b4d974b6ae4e490d81c15b8f17fefd70029", "sourceMap": "945:3464:12:-;;;1506:290;8:9:-1;5:2;;;30:1;27;20:12;5:2;1506:290:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;509:10:25;501:5;;:18;;;;;;;;;;;;;;;;;;1654:15:12;1629:22;;:40;;;;;;;;;;;;;;;;;;1699:15;1679:17;;:35;;;;;;;;;;;;;;;;;;1755:34;1724:28;;:65;;;;;;;;;;;;;;;;;;1506:290;;;945:3464;;;;;;", "deployedSourceMap": "945:3464:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1045:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1045:43:12;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1094:32:12;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;3779:177:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3779:177:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:37:12;;;;;;;;;;;;;;;;;;;;;;;;;;;832:174:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;832:174:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;2921:710:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2921:710:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1045:43;;;;;;;;;;;;;:::o;1094:32::-;;;;;;;;;;;;;:::o;238:20:25:-;;;;;;;;;;;;;:::o;3779:177:12:-;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;3896:1:12;3869:29;;:15;:29;;;;3861:38;;;;;;;;3934:15;3909:22;;:40;;;;;;;;;;;;;;;;;;3779:177;:::o;1002:37::-;;;;;;;;;;;;;:::o;832:174:25:-;653:5;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;928:1;908:22;;:8;:22;;;;900:31;;;;;;;;970:8;942:37;;963:5;;;;;;;;;;;942:37;;;;;;;;;;;;993:8;985:5;;:16;;;;;;;;;;;;;;;;;;832:174;:::o;2921:710:12:-;3149:34;3226:12;;3252:10;3276:17;;;;;;;;;;;3307:22;3343:28;;;;;;;;;;;3385:13;3412:16;;3442:11;;3186:277;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3186:277:12;3149:314;;3505:22;;;;;;;;;;;3473:77;;;3551:11;3473:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3473:90:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3473:90:12;;;;3612:11;3578:46;;3600:10;3578:46;;;;;;;;;;;;2921:710;;;;;;;;;:::o;945:3464::-;;;;;;;;;;:::o", "source": "/*\n Copyright 2017-2018 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity ^0.4.24;\n\nimport \"./MarketContractOraclize.sol\";\nimport \"../MarketContractRegistryInterface.sol\";\nimport \"../factories/MarketCollateralPoolFactoryInterface.sol\";\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n\n/// @title MarketContractFactoryOraclize\n/// @author Phil Elsasser \ncontract MarketContractFactoryOraclize is Ownable {\n\n address public marketContractRegistry;\n address public collateralPoolFactoryAddress;\n address public MKT_TOKEN_ADDRESS;\n\n event MarketContractCreated(address indexed creator, address indexed contractAddress);\n\n /// @dev deploys our factory and ties it the a supply registry address\n /// @param registryAddress - address of our MARKET registry\n /// @param mktTokenAddress - MARKET Token address\n /// @param marketCollateralPoolFactoryAddress - address of collateral pool factory.\n constructor(address registryAddress, address mktTokenAddress, address marketCollateralPoolFactoryAddress) public {\n marketContractRegistry = registryAddress;\n MKT_TOKEN_ADDRESS = mktTokenAddress;\n collateralPoolFactoryAddress = marketCollateralPoolFactoryAddress;\n }\n\n /// @dev Deploys a new instance of a market contract and adds it to the whitelist.\n /// @param contractName viewable name of this contract (BTC/ETH, LTC/ETH, etc)\n /// @param collateralTokenAddress address of the ERC20 token that will be used for collateral and pricing\n /// @param contractSpecs array of unsigned integers including:\n /// floorPrice minimum tradeable price of this contract, contract enters settlement if breached\n /// capPrice maximum tradeable price of this contract, contract enters settlement if breached\n /// priceDecimalPlaces number of decimal places to convert our queried price from a floating point to\n /// an integer\n /// qtyMultiplier multiply traded qty by this value from base units of collateral token.\n /// expirationTimeStamp - seconds from epoch that this contract expires and enters settlement\n /// @param oracleDataSource a data-source such as \"URL\", \"WolframAlpha\", \"IPFS\"\n /// see http://docs.oraclize.it/#ethereum-quick-start-simple-query\n /// @param oracleQuery see http://docs.oraclize.it/#ethereum-quick-start-simple-query for examples\n function deployMarketContractOraclize(\n string contractName,\n address collateralTokenAddress,\n uint[5] contractSpecs,\n string oracleDataSource,\n string oracleQuery\n ) external\n {\n MarketContractOraclize mktContract = new MarketContractOraclize(\n contractName,\n msg.sender,\n MKT_TOKEN_ADDRESS,\n collateralTokenAddress,\n collateralPoolFactoryAddress,\n contractSpecs,\n oracleDataSource,\n oracleQuery\n );\n MarketContractRegistryInterface(marketContractRegistry).addAddressToWhiteList(mktContract);\n emit MarketContractCreated(msg.sender, mktContract);\n }\n\n /// @dev allows for the owner to set the desired registry for contract creation.\n /// @param registryAddress desired registry address.\n function setRegistryAddress(address registryAddress) external onlyOwner {\n require(registryAddress != address(0));\n marketContractRegistry = registryAddress;\n }\n\n /*\n currently adding this function pushes us over the edge for gas, for the time being we can leave it out.\n /// @dev allows for the owner to set switch out factories\n /// @param marketCollateralPoolFactoryAddress desired factory address.\n function setCollateralPoolFactoryAddress(address marketCollateralPoolFactoryAddress) external onlyOwner {\n collateralPoolFactoryAddress = marketCollateralPoolFactoryAddress;\n }\n */\n}\n", - "sourcePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractFactoryOraclize.sol", + "sourcePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractFactoryOraclize.sol", "ast": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractFactoryOraclize.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractFactoryOraclize.sol", "exportedSymbols": { "MarketContractFactoryOraclize": [ 2756 @@ -197,7 +197,7 @@ "src": "608:24:12" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", "file": "./MarketContractOraclize.sol", "id": 2652, "nodeType": "ImportDirective", @@ -208,7 +208,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", "file": "../MarketContractRegistryInterface.sol", "id": 2653, "nodeType": "ImportDirective", @@ -219,7 +219,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", "file": "../factories/MarketCollateralPoolFactoryInterface.sol", "id": 2654, "nodeType": "ImportDirective", @@ -1564,7 +1564,7 @@ "src": "608:3802:12" }, "legacyAST": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractFactoryOraclize.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractFactoryOraclize.sol", "exportedSymbols": { "MarketContractFactoryOraclize": [ 2756 @@ -1585,7 +1585,7 @@ "src": "608:24:12" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", "file": "./MarketContractOraclize.sol", "id": 2652, "nodeType": "ImportDirective", @@ -1596,7 +1596,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", "file": "../MarketContractRegistryInterface.sol", "id": 2653, "nodeType": "ImportDirective", @@ -1607,7 +1607,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/factories/MarketCollateralPoolFactoryInterface.sol", "file": "../factories/MarketCollateralPoolFactoryInterface.sol", "id": 2654, "nodeType": "ImportDirective", @@ -2959,12 +2959,12 @@ "4": { "events": {}, "links": { - "OrderLib": "0x5374c9b5d0d60e7f58063e02e6fd905ff94c4fb6" + "OrderLib": "0x5cfce3c76fa3528b87f27149c341b2add6904ea7" }, - "address": "0x91137a8189fbaef42f9f9ad77653eeb006f944c9", - "transactionHash": "0xa0942a153efc879ca69fa46549815b35345ba7f55a3eb5eb726aa55406e9bb8b" + "address": "0xa9fd47ac90c86dc770219d040aa4311dda78a807", + "transactionHash": "0x32332dd11413cab050cd3b7e8a3d060f0090ab8ec31a9d8e3321397eb94331ef" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-09-07T17:31:18.229Z" + "updatedAt": "2018-09-07T18:28:49.236Z" } \ No newline at end of file diff --git a/build/contracts/MarketContractOraclize.json b/build/contracts/MarketContractOraclize.json index b292741..d596ebb 100644 --- a/build/contracts/MarketContractOraclize.json +++ b/build/contracts/MarketContractOraclize.json @@ -638,14 +638,14 @@ "type": "function" } ], - "bytecode": "0x60806040526000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200566038038062005660833981018060405281019080805182019291906020018051906020019092919080519060200190929190805190602001909291908051906020019092919091908260a0018051820192919060200180518201929190505050878787878787336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384281dcc336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156200027557600080fd5b505af11580156200028a573d6000803e3d6000fd5b505050506040513d6020811015620002a157600080fd5b81019080805190602001909291905050501515620002be57600080fd5b806000600581101515620002ce57fe5b6020020151600781905550806001600581101515620002e957fe5b60200201516006819055506007546006541115156200030757600080fd5b8060026005811015156200031757fe5b60200201516008819055508060036005811015156200033257fe5b60200201516009819055508060046005811015156200034d57fe5b6020020151600a8190555042600a541115156200036957600080fd5b856004908051906020019062000381929190620015b9565b5082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200046b60017f01000000000000000000000000000000000000000000000000000000000000000260107f01000000000000000000000000000000000000000000000000000000000000000217620004db640100000000026401000000009004565b816014908051906020019062000483929190620015b9565b5080601590805190602001906200049c929190620015b9565b50624f1a0042600a540311151515620004b457600080fd5b620004cd62000893640100000000026401000000009004565b505050505050505062001668565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806200055e575060006200055c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000581576200057f600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200060857600080fd5b505af11580156200061d573d6000803e3d6000fd5b505050506040513d60208110156200063457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515620007a157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200072357600080fd5b505af115801562000738573d6000803e3d6000fd5b505050506040513d60208110156200074f57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663688dcfd7826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050600060405180830381600087803b1580156200087757600080fd5b505af11580156200088c573d6000803e3d6000fd5b5050505050565b6000620009f3600a5460148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009365780601f106200090a5761010080835404028352916020019162000936565b820191906000526020600020905b8154815290600101906020018083116200091857829003601f168201915b505050505060158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009d55780601f10620009a957610100808354040283529160200191620009d5565b820191906000526020600020905b815481529060010190602001808311620009b757829003601f168201915b5050505050620249f062000a71640100000000026401000000009004565b9050600060010281600019161415151562000a0d57600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000813b9050919050565b600062000a6a6200103e640100000000026401000000009004565b9050919050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148062000af75750600062000af5601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000b1a5762000b18600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000ba157600080fd5b505af115801562000bb6573d6000803e3d6000fd5b505050506040513d602081101562000bcd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151562000d3a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000cbc57600080fd5b505af115801562000cd1573d6000803e3d6000fd5b505050506040513d602081101562000ce857600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101562000ded57808201518184015260208101905062000dd0565b50505050905090810190601f16801562000e1b5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801562000e3c57600080fd5b505af115801562000e51573d6000803e3d6000fd5b505050506040513d602081101562000e6857600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f82888888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562000f3b57808201518184015260208101905062000f1e565b50505050905090810190601f16801562000f695780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101562000fa457808201518184015260208101905062000f87565b50505050905090810190601f16801562000fd25780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801562000ff557600080fd5b505af11580156200100a573d6000803e3d6000fd5b50505050506040513d60208110156200102257600080fd5b8101908080519060200190929190505050915050949350505050565b6000806200106f731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed62000a44640100000000026401000000009004565b11156200112457731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200111a6040805190810160405280600b81526020017f6574685f6d61696e6e65740000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200115473c03a2615d5efaf5f49f60b7bb6583eaec212fdf162000a44640100000000026401000000009004565b1115620012095773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620011ff6040805190810160405280600c81526020017f6574685f726f707374656e3300000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200123973b7a07bcf2ba2f2703b24c0691b5278999c59ac7e62000a44640100000000026401000000009004565b1115620012ee5773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620012e46040805190810160405280600981526020017f6574685f6b6f76616e00000000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200131e73146500cfd35b22e4a392fe0adc06de1a1368ed4862000a44640100000000026401000000009004565b1115620013d35773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620013c96040805190810160405280600b81526020017f6574685f72696e6b6562790000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b600062001403736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47562000a44640100000000026401000000009004565b11156200146957736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b6000620014997320e12a1f859b3feae5fb2a0a32c18f5a65555bbf62000a44640100000000026401000000009004565b1115620014ff577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b60006200152f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa62000a44640100000000026401000000009004565b111562001595577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b600090505b90565b8060139080519060200190620015b5929190620015b9565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620015fc57805160ff19168380011785556200162d565b828001600101855582156200162d579182015b828111156200162c5782518255916020019190600101906200160f565b5b5090506200163c919062001640565b5090565b6200166591905b808211156200166157600081600090555060010162001647565b5090565b90565b613fe880620016786000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a723058203efc5ed5666ae0e73f727f12f9beeab30676fc0e6e29e27bf13bcc4a0051dc020029", - "deployedBytecode": "0x60806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a723058203efc5ed5666ae0e73f727f12f9beeab30676fc0e6e29e27bf13bcc4a0051dc020029", + "bytecode": "0x60806040526000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200566038038062005660833981018060405281019080805182019291906020018051906020019092919080519060200190929190805190602001909291908051906020019092919091908260a0018051820192919060200180518201929190505050878787878787336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384281dcc336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156200027557600080fd5b505af11580156200028a573d6000803e3d6000fd5b505050506040513d6020811015620002a157600080fd5b81019080805190602001909291905050501515620002be57600080fd5b806000600581101515620002ce57fe5b6020020151600781905550806001600581101515620002e957fe5b60200201516006819055506007546006541115156200030757600080fd5b8060026005811015156200031757fe5b60200201516008819055508060036005811015156200033257fe5b60200201516009819055508060046005811015156200034d57fe5b6020020151600a8190555042600a541115156200036957600080fd5b856004908051906020019062000381929190620015b9565b5082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200046b60017f01000000000000000000000000000000000000000000000000000000000000000260107f01000000000000000000000000000000000000000000000000000000000000000217620004db640100000000026401000000009004565b816014908051906020019062000483929190620015b9565b5080601590805190602001906200049c929190620015b9565b50624f1a0042600a540311151515620004b457600080fd5b620004cd62000893640100000000026401000000009004565b505050505050505062001668565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806200055e575060006200055c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000581576200057f600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200060857600080fd5b505af11580156200061d573d6000803e3d6000fd5b505050506040513d60208110156200063457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515620007a157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200072357600080fd5b505af115801562000738573d6000803e3d6000fd5b505050506040513d60208110156200074f57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663688dcfd7826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050600060405180830381600087803b1580156200087757600080fd5b505af11580156200088c573d6000803e3d6000fd5b5050505050565b6000620009f3600a5460148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009365780601f106200090a5761010080835404028352916020019162000936565b820191906000526020600020905b8154815290600101906020018083116200091857829003601f168201915b505050505060158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620009d55780601f10620009a957610100808354040283529160200191620009d5565b820191906000526020600020905b815481529060010190602001808311620009b757829003601f168201915b5050505050620249f062000a71640100000000026401000000009004565b9050600060010281600019161415151562000a0d57600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000813b9050919050565b600062000a6a6200103e640100000000026401000000009004565b9050919050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148062000af75750600062000af5601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a44640100000000026401000000009004565b145b1562000b1a5762000b18600062000a4f640100000000026401000000009004565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000ba157600080fd5b505af115801562000bb6573d6000803e3d6000fd5b505050506040513d602081101562000bcd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151562000d3a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801562000cbc57600080fd5b505af115801562000cd1573d6000803e3d6000fd5b505050506040513d602081101562000ce857600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101562000ded57808201518184015260208101905062000dd0565b50505050905090810190601f16801562000e1b5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801562000e3c57600080fd5b505af115801562000e51573d6000803e3d6000fd5b505050506040513d602081101562000e6857600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f82888888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562000f3b57808201518184015260208101905062000f1e565b50505050905090810190601f16801562000f695780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101562000fa457808201518184015260208101905062000f87565b50505050905090810190601f16801562000fd25780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801562000ff557600080fd5b505af11580156200100a573d6000803e3d6000fd5b50505050506040513d60208110156200102257600080fd5b8101908080519060200190929190505050915050949350505050565b6000806200106f731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed62000a44640100000000026401000000009004565b11156200112457731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200111a6040805190810160405280600b81526020017f6574685f6d61696e6e65740000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200115473c03a2615d5efaf5f49f60b7bb6583eaec212fdf162000a44640100000000026401000000009004565b1115620012095773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620011ff6040805190810160405280600c81526020017f6574685f726f707374656e3300000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200123973b7a07bcf2ba2f2703b24c0691b5278999c59ac7e62000a44640100000000026401000000009004565b1115620012ee5773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620012e46040805190810160405280600981526020017f6574685f6b6f76616e00000000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b60006200131e73146500cfd35b22e4a392fe0adc06de1a1368ed4862000a44640100000000026401000000009004565b1115620013d35773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620013c96040805190810160405280600b81526020017f6574685f72696e6b6562790000000000000000000000000000000000000000008152506200159d640100000000026401000000009004565b600190506200159a565b600062001403736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47562000a44640100000000026401000000009004565b11156200146957736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b6000620014997320e12a1f859b3feae5fb2a0a32c18f5a65555bbf62000a44640100000000026401000000009004565b1115620014ff577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b60006200152f7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa62000a44640100000000026401000000009004565b111562001595577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190506200159a565b600090505b90565b8060139080519060200190620015b5929190620015b9565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620015fc57805160ff19168380011785556200162d565b828001600101855582156200162d579182015b828111156200162c5782518255916020019190600101906200160f565b5b5090506200163c919062001640565b5090565b6200166591905b808211156200166157600081600090555060010162001647565b5090565b90565b613fe880620016786000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a72305820a52ccf48e4f2c6de7aa2cc11611e9627242651c5eabcc2d8d6ba2fde0bc057ba0029", + "deployedBytecode": "0x60806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f14610164578063053f14da146101bb5780630c8eb675146101e657806327dc297e146102765780632fed1b00146102ed578063323bb775146103185780633270bb5b1461036f57806338bbfa501461039e5780633b3c4ae91461045b578063411449bb1461048a5780634c258eb1146104b557806356357d91146104fa5780635ea7867a1461058a578063614d08f81461061a5780636db7f77c146106aa578063798ddbc8146106b4578063930a9d921461070b578063a8e77c9a14610793578063b5471dee146107ea578063bb4b573414610815578063c201293b14610840578063c32b1dfa14610883578063ca361d67146108ae578063d514d12c146108d9578063f348e8b214610930578063fa3fa1961461095b578063fc51b9c51461099e575b600080fd5b34801561017057600080fd5b506101796109fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101d0610a22565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102eb6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ac6565b005b3480156102f957600080fd5b50610302610b09565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d610b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037b57600080fd5b50610384610b35565b604051808215151515815260200191505060405180910390f35b3480156103aa57600080fd5b506104596004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b48565b005b34801561046757600080fd5b50610470610cba565b604051808215151515815260200191505060405180910390f35b34801561049657600080fd5b5061049f610ccd565b6040518082815260200191505060405180910390f35b3480156104c157600080fd5b506104e46004803603810190808035600019169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b5061050f610cf1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054f578082015181840152602081019050610534565b50505050905090810190601f16801561057c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059657600080fd5b5061059f610d8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105df5780820151818401526020810190506105c4565b50505050905090810190601f16801561060c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062657600080fd5b5061062f610e2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066f578082015181840152602081019050610654565b50505050905090810190601f16801561069c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b2610ecb565b005b3480156106c057600080fd5b506106c9611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b5061077d600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061113f565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107a8611b0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b506107ff611b35565b6040518082815260200191505060405180910390f35b34801561082157600080fd5b5061082a611b3b565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b005b34801561088f57600080fd5b50610898611d8f565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108c3611d95565b6040518082815260200191505060405180910390f35b3480156108e557600080fd5b506108ee611d9b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b50610945611dc1565b6040518082815260200191505060405180910390f35b34801561096757600080fd5b5061099c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dc7565b005b3480156109aa57600080fd5b506109e7600480360381019080806060019091929192908060a0019091929192908035906020019092919080359060200190929190505050611f1c565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b610b05828260006040519080825280601f01601f191660200182016040528015610aff5781602001602082028038833980820191505090505b50610b48565b5050565b60085481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b610b506121a0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8957600080fd5b60176000846000191660001916815260200190815260200160002060009054906101000a900460ff161515610bbd57600080fd5b8160169080519060200190610bd3929190613e85565b50610be082600854612502565b600b819055507f3e19f2256bddc30aeab8054ccbd86723452d07f687b94441de69c05ee212dafa826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390a1610c8a6127f6565b60176000846000191660001916815260200190815260200160002060006101000a81549060ff0219169055505050565b600d60019054906101000a900460ff1681565b620249f081565b6000610cea82600f6128c690919063ffffffff16565b9050919050565b60148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505081565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b505050505081565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec35780601f10610e9857610100808354040283529160200191610ec3565b820191906000526020600020905b815481529060010190602001808311610ea657829003601f168201915b505050505081565b600080610f7560148054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b5050505050620249f061291d565b9150813410151515610f8657600080fd5b6110c860148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101f5780601f10610ff45761010080835404028352916020019161101f565b820191906000526020600020905b81548152906001019060200180831161100257829003601f168201915b505050505060158054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ba5780601f1061108f576101008083540402835291602001916110ba565b820191906000526020600020905b81548152906001019060200180831161109d57829003601f168201915b5050505050620249f0612cfa565b905060006001028160001916141515156110e157600080fd5b600160176000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611149613f05565b6000806000806000600d60019054906101000a900460ff16801561117a5750600d60009054906101000a900460ff16155b151561118557600080fd5b60008c14158015611197575060008b14155b80156111b257506111b18b8d61328d90919063ffffffff16565b5b15156111bd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f30336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d60208110156112d857600080fd5b810190808051906020019092919050505015156112f457600080fd5b61136b8e600380602002604051908101604052809291908260036020028082843782019150505050508e600580602002604051908101604052809291908260056020028082843782019150505050508e3073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b9550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfab472f3088600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b505050506040513d602081101561148c57600080fd5b810190808051906020019092919050505015156114a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16148061151657503373ffffffffffffffffffffffffffffffffffffffff16866020015173ffffffffffffffffffffffffffffffffffffffff16145b151561152157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff161415801561159257503373ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff1614155b151561159d57600080fd5b856000015173ffffffffffffffffffffffffffffffffffffffff1673__OrderLib______________________________638163681e90918861010001518d8d8d6040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019550505050505060206040518083038186803b15801561169357600080fd5b505af41580156116a7573d6000803e3d6000fd5b505050506040513d60208110156116bd57600080fd5b810190808051906020019092919050505015156116d957600080fd5b8560c00151421015156117325785610100015160001916600060018111156116fd57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b611752611743876101000151610cd4565b8d61343990919063ffffffff16565b945060008514156117a8578561010001516000191660018081111561177357fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009650611afe565b6117b2858c613450565b9650600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eeaba0838760000151338a8a60a001516040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506118f086610100015188600f6134799092919063ffffffff16565b6000935060009250600073ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16141515611a455761193b876134cf565b9150611946876134cf565b90506000866060015111156119c85761196e828288606001516134ed9092919063ffffffff16565b93506119c78660000151876040015186600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b600086608001511115611a44576119ee828288608001516134ed9092919063ffffffff16565b9250611a4333876040015185600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661350d909392919063ffffffff16565b5b5b856040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16876000015173ffffffffffffffffffffffffffffffffffffffff167ff756998387aae83a81d5053664c1ed50a128ecd4e82cc2e135b5a2f367841f598a88888c60a001518d61010001516040518086815260200185815260200184815260200183815260200182600019166000191681526020019550505050505060405180910390a48696505b505050505050979650505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9d57600080fd5b600d60019054906101000a900460ff16151515611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bb55cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cd357600080fd5b505af1158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515611d3057600080fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60016101000a81548160ff02191690831515021790555050565b60075481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e5e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7f11fe0c7098e1a76afcc68f35abaa07ef156fa7d6dd2d39664812fe37348d1660405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f26613f05565b6000808414158015611f475750611f46858561328d90919063ffffffff16565b5b1515611f5257600080fd5b600d60009054906101000a900460ff16151515611f6e57600080fd5b611fe587600380602002604051908101604052809291908260036020028082843782019150505050508760058060200260405190810160405280929190826005602002808284378201915050505050873073ffffffffffffffffffffffffffffffffffffffff166132a7909392919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151561202557600080fd5b8160c001514210151561207e57816101000151600019166000600181111561204957fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b61209e61208f836101000151610cd4565b8661343990919063ffffffff16565b905060008114156120f457816101000151600019166001808111156120bf57fe5b7fe6104340582083fe7674a149f8da127b9d3d7f74a88ccd7610562eb5b61b919360405160405180910390a360009250612196565b6120fe8482613450565b925061211b82610100015184600f61362d9092919063ffffffff16565b81610100015160001916826040015173ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff167f7de4479e80e82e22edb1e0010433c8befc804c34988024fa0b0234715102cd8f866040518082815260200191505060405180910390a48292505b5050949350505050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061221257506000612210601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b1561222357612221600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050506040513d60208110156122d357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561243c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b505050506040513d60208110156123ea57600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c281d19e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b8101908080519060200190929190505050905090565b6000606060008060008693506000925060009150600090505b83518110156127d75760307f010000000000000000000000000000000000000000000000000000000000000002848281518110151561255657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801561266e575060397f01000000000000000000000000000000000000000000000000000000000000000284828151811015156125fe57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1561271f578115612691576000861415612687576127d7565b8580600190039650505b600a83029250603084828151811015156126a757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900403830192506127ca565b602e7f010000000000000000000000000000000000000000000000000000000000000002848281518110151561275157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156127c957600191505b5b808060010191505061251b565b60008611156127e95785600a0a830292505b8294505050505092915050565b6000600d60009054906101000a900460ff1615612812576128c3565b600a54421115612841576001600d60006101000a81548160ff021916908315150217905550600b5490506128a3565b600654600b54101515612873576001600d60006101000a81548160ff02191690831515021790555060065490506128a2565b600754600b541115156128a1576001600d60006101000a81548160ff02191690831515021790555060075490505b5b5b600d60009054906101000a900460ff16156128c2576128c18161369f565b5b5b50565b60006129158360010160008460001916600019168152602001908152602001600020548460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b905092915050565b600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061298f5750600061298d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b156129a05761299e600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a2657600080fd5b505af1158015612a3a573d6000803e3d6000fd5b505050506040513d6020811015612a5057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bb957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b3d57600080fd5b505af1158015612b51573d6000803e3d6000fd5b505050506040513d6020811015612b6757600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015612cb757600080fd5b505af1158015612ccb573d6000803e3d6000fd5b505050506040513d6020811015612ce157600080fd5b8101908080519060200190929190505050905092915050565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612d6e57506000612d6c601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613683565b145b15612d7f57612d7d600061368e565b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612e0557600080fd5b505af1158015612e19573d6000803e3d6000fd5b505050506040513d6020811015612e2f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f9857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b505050506040513d6020811015612f4657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ef3accc86856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561304957808201518184015260208101905061302e565b50505050905090810190601f1680156130765780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561309657600080fd5b505af11580156130aa573d6000803e3d6000fd5b505050506040513d60208110156130c057600080fd5b81019080805190602001909291905050509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c51be90f8260008888886040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015613192578082015181840152602081019050613177565b50505050905090810190601f1680156131bf5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156131f85780820151818401526020810190506131dd565b50505050905090810190601f1680156132255780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b50505050506040513d602081101561327257600080fd5b81019080805190602001909291905050509150509392505050565b60008183148061329f57506000828402135b905092915050565b6132af613f05565b8360006003811015156132be57fe5b6020020151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600160038110151561330957fe5b6020020151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083600260038110151561335457fe5b6020020151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082600060058110151561339f57fe5b60200201518160600181815250508260016005811015156133bc57fe5b60200201518160800181815250508260026005811015156133d957fe5b60200201518160a00181815250508260036005811015156133f657fe5b60200201518160c0018181525050818160e001818152505061341a85858585613748565b8161010001906000191690816000191681525050809050949350505050565b600061344883836000036136e0565b905092915050565b600061345b826134cf565b613464846134cf565b1061346f5781613471565b825b905092915050565b6134a9818460000160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836000016000846000191660001916815260200190815260200160002081905550505050565b6000808212156134e4578160000390506134e8565b8190505b919050565b6000816134fa85856139a2565b81151561350357fe5b0490509392505050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156135e457600080fd5b505af11580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b8101908080519060200190929190505050151561362757fe5b50505050565b61365d818460010160008560001916600019168152602001908152602001600020546136e090919063ffffffff16565b836001016000846000191660001916815260200190815260200160002081905550505050565b6000813b9050919050565b60006136986139d5565b9050919050565b80600c819055507f68170b705528d3ff1d324cda28eb28cc3d11ce81207f157c05e11c18411a013c816040518082815260200191505060405180910390a150565b60008082840190506136f2848461328d565b151561370057809150613741565b600084121515613726578360ff60019060020a021903831315151561372157fe5b61373d565b8360ff60019060020a0203831215151561373c57fe5b5b8091505b5092915050565b60008484600060038110151561375a57fe5b602002015185600160038110151561376e57fe5b602002015186600260038110151561378257fe5b602002015186600060058110151561379657fe5b60200201518760016005811015156137aa57fe5b60200201518860026005811015156137be57fe5b60200201518960036005811015156137d257fe5b60200201518a60046005811015156137e657fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561396b5780518252602082019150602081019050602083039250613946565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600080828402905060008414806139c357508284828115156139c057fe5b04145b15156139cb57fe5b8091505092915050565b6000806139f5731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed613683565b1115613a9757731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a8e6040805190810160405280600b81526020017f6574685f6d61696e6e6574000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613ab673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1613683565b1115613b585773c03a2615d5efaf5f49f60b7bb6583eaec212fdf1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613b4f6040805190810160405280600c81526020017f6574685f726f707374656e330000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613b7773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e613683565b1115613c195773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613c106040805190810160405280600981526020017f6574685f6b6f76616e0000000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613c3873146500cfd35b22e4a392fe0adc06de1a1368ed48613683565b1115613cda5773146500cfd35b22e4a392fe0adc06de1a1368ed48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613cd16040805190810160405280600b81526020017f6574685f72696e6b656279000000000000000000000000000000000000000000815250613e6b565b60019050613e68565b6000613cf9736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475613683565b1115613d5d57736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613d7c7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf613683565b1115613de0577320e12a1f859b3feae5fb2a0a32c18f5a65555bbf601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b6000613dff7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa613683565b1115613e63577351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050613e68565b600090505b90565b8060139080519060200190613e81929190613e85565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ec657805160ff1916838001178555613ef4565b82800160010185558215613ef4579182015b82811115613ef3578251825591602001919060010190613ed8565b5b509050613f019190613f97565b5090565b61012060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600080191681525090565b613fb991905b80821115613fb5576000816000905550600101613f9d565b5090565b905600a165627a7a72305820a52ccf48e4f2c6de7aa2cc11611e9627242651c5eabcc2d8d6ba2fde0bc057ba0029", "sourceMap": "875:5632:13:-;;;2308:5:3;2284:29;;;;;;;;;;;;;;;;;;;;2364:5;2319:50;;;;;;;;;;;;;;;;;;;;2601:1060:13;8:9:-1;5:2;;;30:1;27;20:12;5:2;2601:1060:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2918:12;2940:14;2964:18;2992:22;3024:28;3062:13;1017:10:0;1007:7;;:20;;;;;;;;;;;;;;;;;;4580:28:3;4546:31;;:62;;;;;;;;;;;;;;;;;;4638:18;4618:17;;:38;;;;;;;;;;;;;;;;;;4690:18;4666:9;;:43;;;;;;;;;;;;;;;;;;4727:9;;;;;;;;;;;:48;;;4776:10;4727:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4727:60:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4727:60:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4727:60:3;;;;;;;;;;;;;;;;4719:69;;;;;;;;4845:13;4859:1;4845:16;;;;;;;;;;;;;4831:11;:30;;;;4883:13;4897:1;4883:16;;;;;;;;;;;;;4871:9;:28;;;;4929:11;;4917:9;;:23;4909:32;;;;;;;;4975:13;4989:1;4975:16;;;;;;;;;;;;;4952:20;:39;;;;5018:13;5032:1;5018:16;;;;;;;;;;;;;5001:14;:33;;;;5057:13;5071:1;5057:16;;;;;;;;;;;;;5044:10;:29;;;;5104:3;5091:10;;:16;5083:25;;;;;;;;5135:12;5119:13;:28;;;;;;;;;;;;:::i;:::-;;5184:22;5157:24;;:49;;;;;;;;;;;;;;;;;;5226:14;5216:7;;:24;;;;;;;;;;;;;;;;;;4293:954;;;;;;3104:58:13;1928:4:17;3144:17:13;;1884:4:17;3122:19:13;;:39;3104:17;;;:58;;;:::i;:::-;3303:16;3282:18;:37;;;;;;;;;;;;:::i;:::-;;3344:11;3329:12;:26;;;;;;;;;;;;:::i;:::-;;3544:7;3537:3;3524:10;;:16;:27;;3516:36;;;;;;;;3562:13;:11;;;:13;;;:::i;:::-;2601:1060;;;;;;;;875:5632;;6602:114:17;2254:1;2248:3;;;;;;;;;;;2240:15;;;2239:49;;;;2286:1;2259:25;2279:3;;;;;;;;;;;2259:11;;;:25;;;:::i;:::-;:28;2239:49;2236:101;;;2302:35;1970:1;2302:19;;;:35;;;:::i;:::-;;2236:101;2372:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2372:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2372:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2372:16:17;;;;;;;;;;;;;;;;2351:37;;2359:8;;;;;;;;;;;2351:37;;;;2348:92;;;2423:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2423:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2423:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2423:16:17;;;;;;;;;;;;;;;;2402:8;;:38;;;;;;;;;;;;;;;;;;2348:92;6680:8;;;;;;;;;;;:21;;;6702:6;6680:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6680:29:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6680:29:17;;;;6602:114;:::o;5573:932:13:-;6272:15;6290:138;6318:10;;6342:18;6290:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6374:12;6290:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1104:6;6290:14;;;:138;;;:::i;:::-;6272:156;;6457:1;6446:12;;:7;:12;;;;;6438:21;;;;;;;;6494:4;6469:13;:22;6483:7;6469:22;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;5573:932;:::o;6858:150:17:-;6920:10;6986:5;6974:18;6965:27;;6951:51;;;:::o;2564:183::-;2627:4;2647:21;:19;;;:21;;;:::i;:::-;2640:28;;2564:183;;;:::o;5732:383::-;5848:10;5869;2254:1;2248:3;;;;;;;;;;;2240:15;;;2239:49;;;;2286:1;2259:25;2279:3;;;;;;;;;;;2259:11;;;:25;;;:::i;:::-;:28;2239:49;2236:101;;;2302:35;1970:1;2302:19;;;:35;;;:::i;:::-;;2236:101;2372:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2372:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2372:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2372:16:17;;;;;;;;;;;;;;;;2351:37;;2359:8;;;;;;;;;;;2351:37;;;;2348:92;;;2423:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2423:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2423:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2423:16:17;;;;;;;;;;;;;;;;2402:8;;:38;;;;;;;;;;;;;;;;;;2348:92;5882:8;;;;;;;;;;;:17;;;5900:10;5912:8;5882:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5882:39:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5882:39:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5882:39:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5882:39:17;;;;;;;;;;;;;;;;5869:52;;6030:8;;;;;;;;;;;:27;;;6064:5;6071:9;6082:10;6094:3;6099:8;6030:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6030:78:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6030:78:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6030:78:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6030:78:17;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6030:78:17;;;;;;;;;;;;;;;;6023:85;;5732:383;;;;;;;:::o;2752:1749::-;2800:4;2875:1;2819:55;2831:42;2819:11;;;:55;;;:::i;:::-;:57;2815:245;;;2929:42;2901:3;;:71;;;;;;;;;;;;;;;;;;2986:38;;;;;;;;;;;;;;;;;;;:23;;;:38;;;:::i;:::-;3045:4;3038:11;;;;2815:245;3129:1;3073:55;3085:42;3073:11;;;:55;;;:::i;:::-;:57;3069:254;;;3191:42;3163:3;;:71;;;;;;;;;;;;;;;;;;3248:39;;;;;;;;;;;;;;;;;;;:23;;;:39;;;:::i;:::-;3308:4;3301:11;;;;3069:254;3392:1;3336:55;3348:42;3336:11;;;:55;;;:::i;:::-;:57;3332:249;;;3452:42;3424:3;;:71;;;;;;;;;;;;;;;;;;3509:36;;;;;;;;;;;;;;;;;;;:23;;;:36;;;:::i;:::-;3566:4;3559:11;;;;3332:249;3650:1;3594:55;3606:42;3594:11;;;:55;;;:::i;:::-;:57;3590:253;;;3712:42;3684:3;;:71;;;;;;;;;;;;;;;;;;3769:38;;;;;;;;;;;;;;;;;;;:23;;;:38;;;:::i;:::-;3828:4;3821:11;;;;3590:253;3912:1;3856:55;3868:42;3856:11;;;:55;;;:::i;:::-;:57;3852:201;;;3974:42;3946:3;;:71;;;;;;;;;;;;;;;;;;4038:4;4031:11;;;;3852:201;4122:1;4066:55;4078:42;4066:11;;;:55;;;:::i;:::-;:57;4062:200;;;4183:42;4155:3;;:71;;;;;;;;;;;;;;;;;;4247:4;4240:11;;;;4062:200;4331:1;4275:55;4287:42;4275:11;;;:55;;;:::i;:::-;:57;4271:202;;;4394:42;4366:3;;:71;;;;;;;;;;;;;;;;;;4458:4;4451:11;;;;4271:202;4489:5;4482:12;;2752:1749;;:::o;7645:118::-;7743:13;7719:21;:37;;;;;;;;;;;;:::i;:::-;;7645:118;:::o;875:5632:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "875:5632:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;947:22:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;947:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2224:21:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2224:21:3;;;;;;;;;;;;;;;;;;;;;;;1251:34:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1251:34:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1251:34:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4507:111:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4507:111:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1935:32:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1935:32:3;;;;;;;;;;;;;;;;;;;;;;;1834:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1834:39:3;;;;;;;;;;;;;;;;;;;;;;;;;;;2284:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2284:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;4930:528:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4930:528:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2319:50:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2319:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;1062:48:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1062:48:13;;;;;;;;;;;;;;;;;;;;;;;12629:168:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12629:168:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;992:32:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;992:32:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;992:32:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1030:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1030:26:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1030:26:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1801:27:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1801:27:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1801:27:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4051:599:13;;;;;;1734:32:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1734:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;;5771:2986;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5771:2986:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2394:45:3;;;;;;;;;;;;;;;;;;;;;;;;;;;1879:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1879:21:3;;;;;;;;;;;;;;;;;;;;;;;2172:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2172:22:3;;;;;;;;;;;;;;;;;;;;;;;10874:540;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10874:540:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;1906:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1906:23:3;;;;;;;;;;;;;;;;;;;;;;;2047:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2047:26:3;;;;;;;;;;;;;;;;;;;;;;;1682:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1682:46:3;;;;;;;;;;;;;;;;;;;;;;;;;;;2251:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2251:27:3;;;;;;;;;;;;;;;;;;;;;;;1131:198:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9228:1354:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9228:1354:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;947:22:0;;;;;;;;;;;;;:::o;2224:21:3:-;;;;:::o;1251:34:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4507:111:17:-;4573:38;4584:4;4590:6;4608:1;4598:12;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4598:12:17;;;;4573:10;:38::i;:::-;4507:111;;:::o;1935:32:3:-;;;;:::o;1834:39::-;;;;;;;;;;;;;:::o;2284:29::-;;;;;;;;;;;;;:::o;4930:528:13:-;5034:20;:18;:20::i;:::-;5020:34;;:10;:34;;;5012:43;;;;;;;;5073:13;:22;5087:7;5073:22;;;;;;;;;;;;;;;;;;;;;;;;;;;5065:31;;;;;;;;5168:6;5145:20;:29;;;;;;;;;;;;:::i;:::-;;5196:38;5205:6;5213:20;;5196:8;:38::i;:::-;5184:9;:50;;;;5249:24;5266:6;5249:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5249:24:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5283:17;:15;:17::i;:::-;5384:13;:22;5398:7;5384:22;;;;;;;;;;;;;;;;;;5377:29;;;;;;;;;;;4930:528;;;:::o;2319:50:3:-;;;;;;;;;;;;;:::o;1062:48:13:-;1104:6;1062:48;:::o;12629:168:3:-;12711:3;12733:57;12780:9;12733:13;:46;;:57;;;;:::i;:::-;12726:64;;12629:168;;;:::o;992:32:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1030:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1801:27:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4051:599:13:-;4112:9;4441:15;4124:57;4142:18;4124:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1104:6;4124:17;:57::i;:::-;4112:69;;4212:4;4199:9;:17;;4191:26;;;;;;;;4459:114;4487:18;4459:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4519:12;4459:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1104:6;4459:14;:114::i;:::-;4441:132;;4602:1;4591:12;;:7;:12;;;;;4583:21;;;;;;;;4639:4;4614:13;:22;4628:7;4614:22;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;4051:599;;:::o;1734:32:3:-;;;;;;;;;;;;;:::o;5771:2986::-;5987:13;6297:27;;:::i;:::-;7033:16;7591:17;7622;7759;7808:16;6024:30;;;;;;;;;;;:44;;;;;6059:9;;;;;;;;;;;6058:10;6024:44;6016:53;;;;;;;;6129:1;6117:8;:13;;:31;;;;;6147:1;6134:9;:14;;6117:31;:65;;;;;6152:30;6172:9;6152:8;:19;;:30;;;;:::i;:::-;6117:65;6109:74;;;;;;;;6234:9;;;;;;;;;;;:34;;;6269:4;6275:10;6234:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6234:52:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6234:52:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6234:52:3;;;;;;;;;;;;;;;;6226:61;;;;;;;;6327:72;6353:14;6327:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6369:19;6327:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6390:8;6335:4;6327:25;;;;:72;;;;;;:::i;:::-;6297:102;;6417:9;;;;;;;;;;;:34;;;6452:4;6458:5;:11;;;6417:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6417:53:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6417:53:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6417:53:3;;;;;;;;;;;;;;;;6409:62;;;;;;;;6573:1;6550:25;;:5;:11;;;:25;;;:54;;;;6594:10;6579:25;;:5;:11;;;:25;;;6550:54;6542:63;;;;;;;;6681:1;6658:25;;:5;:11;;;:25;;;;:54;;;;;6702:10;6687:25;;:5;:11;;;:25;;;;6658:54;6650:63;;;;;;;;6744:5;:11;;;:28;;;;;;6790:5;:15;;;6823:1;6842;6861;6744:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6744:128:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6744:128:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6744:128:3;;;;;;;;;;;;;;;;6723:150;;;;;;;;6896:5;:25;;;6889:3;:32;;6885:138;;;6974:5;:15;;;6942:48;;;6948:24;6942:48;;;;;;;;;;;;;;;;;;7011:1;7004:8;;;;6885:138;7052:68;7070:49;7103:5;:15;;;7070:32;:49::i;:::-;7052:8;:17;;:68;;;;:::i;:::-;7033:87;;7150:1;7134:12;:17;7130:165;;;7246:5;:15;;;7217:45;;;7223:21;7217:45;;;;;;;;;;;;;;;;;;7283:1;7276:8;;;;7130:165;7317:39;7332:12;7346:9;7317:14;:39::i;:::-;7305:51;;7366:20;;;;;;;;;;;:36;;;7416:5;:11;;;7441:10;7465:9;7488:5;:11;;;7366:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7366:143:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7366:143:3;;;;7519:61;7553:5;:15;;;7570:9;7519:13;:33;;:61;;;;;:::i;:::-;7611:1;7591:21;;7642:1;7622:21;;7688:1;7658:32;;:5;:18;;;:32;;;;7654:823;;;7779:15;:9;:13;:15::i;:::-;7759:35;;7827:15;:9;:13;:15::i;:::-;7808:34;;7877:1;7860:5;:14;;;:18;7856:299;;;7913:58;7945:12;7959:11;7913:5;:14;;;:31;;:58;;;;;:::i;:::-;7898:73;;7989:151;8037:5;:11;;;8070:5;:18;;;8110:12;7989:9;;;;;;;;;;;:26;;;;:151;;;;;;:::i;:::-;7856:299;8190:1;8173:5;:14;;;:18;8169:298;;;8226:58;8258:12;8272:11;8226:5;:14;;;:31;;:58;;;;;:::i;:::-;8211:73;;8302:150;8350:10;8382:5;:18;;;8422:12;8302:9;;;;;;;;;;;:26;;;;:150;;;;;;:::i;:::-;8169:298;7654:823;8566:5;:18;;;8492:231;;8542:10;8492:231;;8517:5;:11;;;8492:231;;;8598:9;8621:12;8647;8673:5;:11;;;8698:5;:15;;;8492:231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8741:9;8734:16;;5771:2986;;;;;;;;;;;;;;;;:::o;2394:45::-;;;;;;;;;;;;;:::o;1879:21::-;;;;:::o;2172:22::-;;;;:::o;10874:540::-;14315:31;;;;;;;;;;;14301:45;;:10;:45;;;14293:54;;;;;;;;10977:30;;;;;;;;;;;10976:31;10968:40;;;;;;;;11088:1;11065:25;;:11;:25;;;;11057:34;;;;;;;;11189:11;11145:20;;:56;;;;;;;;;;;;;;;;;;11267:4;11219:53;;:20;;;;;;;;;;;:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11219:36:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11219:36:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11219:36:3;;;;;;;;;;;;;;;;:53;;;11211:62;;;;;;;;11349:11;11316:30;;:44;;;;;;;;;;;;;;;;;;11403:4;11370:30;;:37;;;;;;;;;;;;;;;;;;10874:540;:::o;1906:23::-;;;;:::o;2047:26::-;;;;:::o;1682:46::-;;;;;;;;;;;;;:::o;2251:27::-;;;;:::o;1131:198:0:-;1390:7;;;;;;;;;;;1376:21;;:10;:21;;;1368:30;;;;;;;;1235:1;1213:24;;:10;:24;;;;1205:33;;;;;;;;1281:10;1253:39;;1272:7;;;;;;;;;;;1253:39;;;;;;;;;;;;1312:10;1302:7;;:20;;;;;;;;;;;;;;;;;;1131:198;:::o;9228:1354:3:-;9392:16;9569:27;;:::i;:::-;9944:16;9447:1;9432:11;:16;;:52;;;;;9452:32;9475:8;9452:11;:22;;:32;;;;:::i;:::-;9432:52;9424:61;;;;;;;;9549:9;;;;;;;;;;;9548:10;9540:19;;;;;;;;9599:72;9625:14;9599:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9641:19;9599:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9662:8;9607:4;9599:25;;;;:72;;;;;;:::i;:::-;9569:102;;9704:10;9689:25;;:5;:11;;;:25;;;9681:34;;;;;;;;9807:5;:25;;;9800:3;:32;;9796:138;;;9885:5;:15;;;9853:48;;;9859:24;9853:48;;;;;;;;;;;;;;;;;;9922:1;9915:8;;;;9796:138;9963:68;9981:49;10014:5;:15;;;9981:32;:49::i;:::-;9963:8;:17;;:68;;;;:::i;:::-;9944:87;;10061:1;10045:12;:17;10041:173;;;10165:5;:15;;;10136:45;;;10142:21;10136:45;;;;;;;;;;;;;;;;;;10202:1;10195:8;;;;10041:173;10239:41;10254:11;10267:12;10239:14;:41::i;:::-;10224:56;;10327:67;10364:5;:15;;;10381:12;10327:13;:36;;:67;;;;;:::i;:::-;10520:5;:15;;;10409:136;;;10462:5;:18;;;10409:136;;10437:5;:11;;;10409:136;;;10494:12;10409:136;;;;;;;;;;;;;;;;;;10563:12;10556:19;;9228:1354;;;;;;;;;:::o;6485:112:17:-;6545:7;2254:1;2248:3;;;;;;;;;;;2240:15;;;2239:49;;;;2286:1;2259:25;2279:3;;;;;;;;;;;2259:11;:25::i;:::-;:28;2239:49;2236:101;;;2302:35;1970:1;2302:19;:35::i;:::-;;2236:101;2372:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2372:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2372:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2372:16:17;;;;;;;;;;;;;;;;2351:37;;2359:8;;;;;;;;;;;2351:37;;;;2348:92;;;2423:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2423:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2423:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2423:16:17;;;;;;;;;;;;;;;;2402:8;;:38;;;;;;;;;;;;;;;;;;2348:92;6570:8;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6570:20:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6570:20:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6570:20:17;;;;;;;;;;;;;;;;6563:27;;6485:112;:::o;7013:593::-;7074:4;7090:20;7132:9;7155:13;7191:6;7119:2;7090:32;;7144:1;7132:13;;7171:5;7155:21;;7198:1;7191:8;;7186:357;7203:7;:14;7201:1;:16;7186:357;;;7256:2;7242:16;;:7;7250:1;7242:10;;;;;;;;;;;;;;;;;;;;:16;;;;;7241:38;;;;;7276:2;7262:16;;:7;7270:1;7262:10;;;;;;;;;;;;;;;;;;;;:16;;;;;7241:38;7237:295;;;7302:8;7298:102;;;7342:1;7336:2;:7;7332:49;;;7345:5;;7332:49;7377:4;;;;;;;;7298:102;7425:2;7417:10;;;;7472:2;7458:7;7466:1;7458:10;;;;;;;;;;;;;;;;;;;;7453:16;;;:21;7445:29;;;;7237:295;;;7513:2;7499:16;;:7;7507:1;7499:10;;;;;;;;;;;;;;;;;;;;:16;;;;7495:37;;;7528:4;7517:15;;7495:37;7237:295;7219:3;;;;;;;7186:357;;;7561:1;7556:2;:6;7552:26;;;7576:2;7572;:6;7564:14;;;;7552:26;7595:4;7588:11;;7013:593;;;;;;;;:::o;13014:851:3:-;13126:23;13064:9;;;;;;;;;;;13060:56;;;13109:7;;13060:56;13169:10;;13163:3;:16;13159:616;;;13288:4;13276:9;;:16;;;;;;;;;;;;;;;;;;13384:9;;13363:30;;13159:616;;;13427:9;;13414;;:22;;13410:365;;;13528:4;13516:9;;:16;;;;;;;;;;;;;;;;;;13567:9;;13546:30;;13410:365;;;13610:11;;13597:9;;:24;;13593:182;;;13714:4;13702:9;;:16;;;;;;;;;;;;;;;;;;13753:11;;13732:32;;13593:182;13410:365;13159:616;13789:9;;;;;;;;;;;13785:74;;;13814:34;13829:18;13814:14;:34::i;:::-;13785:74;13014:851;;:::o;1449:236:10:-;1583:3;1609:69;1644:4;:22;;:33;1667:9;1644:33;;;;;;;;;;;;;;;;;;1609:4;:19;;:30;1629:9;1609:30;;;;;;;;;;;;;;;;;;:34;;:69;;;;:::i;:::-;1602:76;;1449:236;;;;:::o;4915:159:17:-;5006:4;2254:1;2248:3;;;;;;;;;;;2240:15;;;2239:49;;;;2286:1;2259:25;2279:3;;;;;;;;;;;2259:11;:25::i;:::-;:28;2239:49;2236:101;;;2302:35;1970:1;2302:19;:35::i;:::-;;2236:101;2372:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2372:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2372:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2372:16:17;;;;;;;;;;;;;;;;2351:37;;2359:8;;;;;;;;;;;2351:37;;;;2348:92;;;2423:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2423:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2423:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2423:16:17;;;;;;;;;;;;;;;;2402:8;;:38;;;;;;;;;;;;;;;;;;2348:92;5028:8;;;;;;;;;;;:17;;;5046:10;5058:8;5028:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5028:39:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5028:39:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5028:39:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5028:39:17;;;;;;;;;;;;;;;;5021:46;;4915:159;;;;:::o;6120:359::-;6220:10;6241;2254:1;2248:3;;;;;;;;;;;2240:15;;;2239:49;;;;2286:1;2259:25;2279:3;;;;;;;;;;;2259:11;:25::i;:::-;:28;2239:49;2236:101;;;2302:35;1970:1;2302:19;:35::i;:::-;;2236:101;2372:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2372:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2372:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2372:16:17;;;;;;;;;;;;;;;;2351:37;;2359:8;;;;;;;;;;;2351:37;;;;2348:92;;;2423:3;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2423:16:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2423:16:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2423:16:17;;;;;;;;;;;;;;;;2402:8;;:38;;;;;;;;;;;;;;;;;;2348:92;6254:8;;;;;;;;;;;:17;;;6272:10;6284:8;6254:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6254:39:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6254:39:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6254:39:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6254:39:17;;;;;;;;;;;;;;;;6241:52;;6402:8;;;;;;;;;;;:27;;;6436:5;6443:1;6446:10;6458:3;6463:8;6402:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6402:70:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6402:70:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6402:70:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6402:70:17;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6402:70:17;;;;;;;;;;;;;;;;6395:77;;6120:359;;;;;;:::o;2916:109:9:-;2973:4;3003:1;2998;:6;:19;;;;3016:1;3012;3008;:5;:9;2998:19;2989:29;;2916:109;;;;:::o;3844:752:10:-;4021:11;;:::i;:::-;4062:14;4077:1;4062:17;;;;;;;;;;;;;4048:5;:11;;:31;;;;;;;;;;;4103:14;4118:1;4103:17;;;;;;;;;;;;;4089:5;:11;;:31;;;;;;;;;;;4151:14;4166:1;4151:17;;;;;;;;;;;;;4130:5;:18;;:38;;;;;;;;;;;4195:19;4215:1;4195:22;;;;;;;;;;;;;4178:5;:14;;:39;;;;;4244:19;4264:1;4244:22;;;;;;;;;;;;;4227:5;:14;;:39;;;;;4290:19;4310:1;4290:22;;;;;;;;;;;;;4276:5;:11;;:36;;;;;4350:19;4370:1;4350:22;;;;;;;;;;;;;4322:5;:25;;:50;;;;;4394:8;4382:5;:9;;:20;;;;;4430:137;4459:15;4488:14;4516:19;4549:8;4430:15;:137::i;:::-;4412:5;:15;;:155;;;;;;;;;;;;;4584:5;4577:12;;3844:752;;;;;;:::o;2354:122:9:-;2415:6;2440:10;2444:1;2448;2447:2;;2440:3;:10::i;:::-;2433:17;;2354:122;;;;:::o;3537:115::-;3596:6;3630;3634:1;3630:3;:6::i;:::-;3621;3625:1;3621:3;:6::i;:::-;:15;:24;;3644:1;3621:24;;;3640:1;3621:24;3614:31;;3537:115;;;;:::o;4802:195:10:-;4945:45;4980:9;4945:4;:19;;:30;4965:9;4945:30;;;;;;;;;;;;;;;;;;:34;;:45;;;;:::i;:::-;4912:4;:19;;:30;4932:9;4912:30;;;;;;;;;;;;;;;;;:78;;;;4802:195;;;:::o;3139:167:9:-;3185:7;3212:1;3208;:5;3204:96;;;3242:1;3241:2;;3229:15;;;;3204:96;3287:1;3275:14;;3139:167;;;;:::o;1037:203::-;1167:7;1222:11;1197:22;1206:1;1209:9;1197:8;:22::i;:::-;:36;;;;;;;;1190:43;;1037:203;;;;;:::o;492:169:30:-;620:5;:18;;;639:4;645:2;649:5;620:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;620:35:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;620:35:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;620:35:30;;;;;;;;;;;;;;;;613:43;;;;;;492:169;;;;:::o;5191:210:10:-;5343:51;5381:12;5343:4;:22;;:33;5366:9;5343:33;;;;;;;;;;;;;;;;;;:37;;:51;;;;:::i;:::-;5307:4;:22;;:33;5330:9;5307:33;;;;;;;;;;;;;;;;;:87;;;;5191:210;;;:::o;6858:150:17:-;6920:10;6986:5;6974:18;6965:27;;6951:51;;;:::o;2564:183::-;2627:4;2647:21;:19;:21::i;:::-;2640:28;;2564:183;;;:::o;14020:166:3:-;14107:20;14089:15;:38;;;;14142:37;14158:20;14142:37;;;;;;;;;;;;;;;;;;14020:166;:::o;1673:509:9:-;1729:6;1747:8;1762:1;1758;:5;1747:16;;1778;1789:1;1792;1778:10;:16::i;:::-;1777:17;1773:126;;;1887:1;1880:8;;;;1773:126;1918:1;1913;:6;;1909:249;;;2022:1;856:3;850:1;842:17;;;;839:22;2009:14;2004:1;:19;;1997:27;;;;;;1909:249;;;2145:1;792:3;786:1;778:17;;;;2132:14;2127:1;:19;;2120:27;;;;;;1909:249;2174:1;2167:8;;1673:509;;;;;;:::o;2115:643:10:-;2294:7;2381:15;2414:14;2429:1;2414:17;;;;;;;;;;;;;2449:14;2464:1;2449:17;;;;;;;;;;;;;2484:14;2499:1;2484:17;;;;;;;;;;;;;2519:19;2539:1;2519:22;;;;;;;;;;;;;2559:19;2579:1;2559:22;;;;;;;;;;;;;2599:19;2619:1;2599:22;;;;;;;;;;;;;2639:19;2659:1;2639:22;;;;;;;;;;;;;2679:19;2699:1;2679:22;;;;;;;;;;;;;2719:8;2347:394;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2347:394:10;;;2324:427;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;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;;;2324:427:10;;;;;;;;;;;;;;;;2317:434;;2115:643;;;;;;:::o;869:162:9:-;932:7;951:9;967:1;963;:5;951:17;;990:1;985;:6;:20;;;;1004:1;999;995;:5;;;;;;;;:10;985:20;978:28;;;;;;1023:1;1016:8;;869:162;;;;;:::o;2752:1749:17:-;2800:4;2875:1;2819:55;2831:42;2819:11;:55::i;:::-;:57;2815:245;;;2929:42;2901:3;;:71;;;;;;;;;;;;;;;;;;2986:38;;;;;;;;;;;;;;;;;;;:23;:38::i;:::-;3045:4;3038:11;;;;2815:245;3129:1;3073:55;3085:42;3073:11;:55::i;:::-;:57;3069:254;;;3191:42;3163:3;;:71;;;;;;;;;;;;;;;;;;3248:39;;;;;;;;;;;;;;;;;;;:23;:39::i;:::-;3308:4;3301:11;;;;3069:254;3392:1;3336:55;3348:42;3336:11;:55::i;:::-;:57;3332:249;;;3452:42;3424:3;;:71;;;;;;;;;;;;;;;;;;3509:36;;;;;;;;;;;;;;;;;;;:23;:36::i;:::-;3566:4;3559:11;;;;3332:249;3650:1;3594:55;3606:42;3594:11;:55::i;:::-;:57;3590:253;;;3712:42;3684:3;;:71;;;;;;;;;;;;;;;;;;3769:38;;;;;;;;;;;;;;;;;;;:23;:38::i;:::-;3828:4;3821:11;;;;3590:253;3912:1;3856:55;3868:42;3856:11;:55::i;:::-;:57;3852:201;;;3974:42;3946:3;;:71;;;;;;;;;;;;;;;;;;4038:4;4031:11;;;;3852:201;4122:1;4066:55;4078:42;4066:11;:55::i;:::-;:57;4062:200;;;4183:42;4155:3;;:71;;;;;;;;;;;;;;;;;;4247:4;4240:11;;;;4062:200;4331:1;4275:55;4287:42;4275:11;:55::i;:::-;:57;4271:202;;;4394:42;4366:3;;:71;;;;;;;;;;;;;;;;;;4458:4;4451:11;;;;4271:202;4489:5;4482:12;;2752:1749;;:::o;7645:118::-;7743:13;7719:21;:37;;;;;;;;;;;;:::i;:::-;;7645:118;:::o;875:5632:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "/*\n Copyright 2017-2018 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity ^0.4.24;\n\nimport \"./oraclizeAPI.sol\";\nimport \"../libraries/MathLib.sol\";\nimport \"../MarketContract.sol\";\n\n\n/// @title MarketContract first example of a MarketProtocol contract using Oraclize services\n/// @author Phil Elsasser \ncontract MarketContractOraclize is MarketContract, usingOraclize {\n using MathLib for uint;\n\n // constants\n string public ORACLE_DATA_SOURCE;\n string public ORACLE_QUERY;\n uint constant public QUERY_CALLBACK_GAS = 150000;\n //uint constant public QUERY_CALLBACK_GAS_PRICE = 20000000000 wei; // 20 gwei - need to make this dynamic!\n\n // state variables\n string public lastPriceQueryResult;\n mapping(bytes32 => bool) validQueryIDs;\n\n /// @param contractName viewable name of this contract (BTC/ETH, LTC/ETH, etc)\n /// @param creatorAddress address of the person creating the contract\n /// @param marketTokenAddress address of our member token\n /// @param collateralTokenAddress address of the ERC20 token that will be used for collateral and pricing\n /// @param collateralPoolFactoryAddress address of the factory creating the collateral pools\n /// @param contractSpecs array of unsigned integers including:\n /// floorPrice minimum tradeable price of this contract, contract enters settlement if breached\n /// capPrice maximum tradeable price of this contract, contract enters settlement if breached\n /// priceDecimalPlaces number of decimal places to convert our queried price from a floating point to\n /// an integer\n /// qtyMultiplier multiply traded qty by this value from base units of collateral token.\n /// expirationTimeStamp - seconds from epoch that this contract expires and enters settlement\n /// @param oracleDataSource a data-source such as \"URL\", \"WolframAlpha\", \"IPFS\"\n /// see http://docs.oraclize.it/#ethereum-quick-start-simple-query\n /// @param oracleQuery see http://docs.oraclize.it/#ethereum-quick-start-simple-query for examples\n constructor(\n string contractName,\n address creatorAddress,\n address marketTokenAddress,\n address collateralTokenAddress,\n address collateralPoolFactoryAddress,\n uint[5] contractSpecs,\n string oracleDataSource,\n string oracleQuery\n ) MarketContract(\n contractName,\n creatorAddress,\n marketTokenAddress,\n collateralTokenAddress,\n collateralPoolFactoryAddress,\n contractSpecs\n ) public\n {\n oraclize_setProof(proofType_TLSNotary | proofStorage_IPFS);\n //oraclize_setCustomGasPrice(QUERY_CALLBACK_GAS_PRICE); //TODO: allow this to be changed by creator.\n ORACLE_DATA_SOURCE = oracleDataSource;\n ORACLE_QUERY = oracleQuery;\n\n // Future timestamp must be within 60 days from now.\n // https://docs.oraclize.it/#ethereum-quick-start-schedule-a-query-in-the-future\n require(EXPIRATION - now <= 60 days);\n queryOracle(); // Schedule a call to oracle at contract expiration time.\n }\n\n /// @notice allows a user to request an extra query to oracle in order to push the contract into\n /// settlement. A user may call this as many times as they like, since they are the ones paying for\n /// the call to our oracle and post processing. This is useful for both a failsafe and as a way to\n /// settle a contract early if a price cap or floor has been breached.\n function requestEarlySettlement() external payable {\n uint cost = oraclize_getPrice(ORACLE_DATA_SOURCE, QUERY_CALLBACK_GAS);\n require(msg.value >= cost); // user must pay enough to cover query and callback\n // create immediate query, we must make sure to store this one separately, so\n // we do not schedule recursive callbacks when the query completes.\n bytes32 queryId = oraclize_query(\n ORACLE_DATA_SOURCE,\n ORACLE_QUERY,\n QUERY_CALLBACK_GAS\n );\n require(queryId != 0);\n validQueryIDs[queryId] = true;\n }\n\n /*\n // PUBLIC METHODS\n */\n\n /// @notice only public for callbacks from oraclize, do not call\n /// @param queryID of the returning query, this should match our own internal mapping\n /// @param result query to be processed\n /// @param proof result proof\n function __callback(bytes32 queryID, string result, bytes proof) public {\n require(msg.sender == oraclize_cbAddress());\n require(validQueryIDs[queryID]); // At expiration or early settlement.\n lastPriceQueryResult = result;\n lastPrice = parseInt(result, PRICE_DECIMAL_PLACES);\n emit UpdatedLastPrice(result);\n checkSettlement(); // Verify settlement at expiration or requested early settlement.\n delete validQueryIDs[queryID];\n proof; // silence compiler warnings\n }\n\n /*\n // PRIVATE METHODS\n */\n\n /// @dev call to oraclize to set up our query and record its hash.\n function queryOracle() private {\n // Require that sufficient funds are available to pay for the query.\n // require(oraclize_getPrice(ORACLE_DATA_SOURCE, QUERY_CALLBACK_GAS) < this.balance);\n // NOTE: Currently the first oracle query call to oraclize.it is free. Since our\n // expiration query will always be the first, there is no needed pre-funding amount\n // to create this query. When we go to the centralized query hub - this will change\n // due to the fact that the address creating the query will always be the query hub.\n // will have to do the analysis to see which is cheaper, free queries, or lower deployment\n // gas costs\n bytes32 queryId = oraclize_query(\n EXPIRATION,\n ORACLE_DATA_SOURCE,\n ORACLE_QUERY,\n QUERY_CALLBACK_GAS\n );\n require(queryId != 0);\n validQueryIDs[queryId] = true;\n }\n}", - "sourcePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", + "sourcePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", "ast": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", "exportedSymbols": { "MarketContractOraclize": [ 2949 @@ -666,7 +666,7 @@ "src": "608:24:13" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/oraclizeAPI.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/oraclizeAPI.sol", "file": "./oraclizeAPI.sol", "id": 2759, "nodeType": "ImportDirective", @@ -677,7 +677,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/MathLib.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/MathLib.sol", "file": "../libraries/MathLib.sol", "id": 2760, "nodeType": "ImportDirective", @@ -688,7 +688,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContract.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContract.sol", "file": "../MarketContract.sol", "id": 2761, "nodeType": "ImportDirective", @@ -3187,7 +3187,7 @@ "src": "608:5899:13" }, "legacyAST": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/MarketContractOraclize.sol", "exportedSymbols": { "MarketContractOraclize": [ 2949 @@ -3208,7 +3208,7 @@ "src": "608:24:13" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/oraclize/oraclizeAPI.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/oraclize/oraclizeAPI.sol", "file": "./oraclizeAPI.sol", "id": 2759, "nodeType": "ImportDirective", @@ -3219,7 +3219,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/MathLib.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/MathLib.sol", "file": "../libraries/MathLib.sol", "id": 2760, "nodeType": "ImportDirective", @@ -3230,7 +3230,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContract.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContract.sol", "file": "../MarketContract.sol", "id": 2761, "nodeType": "ImportDirective", @@ -5741,5 +5741,5 @@ } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-09-07T17:31:18.153Z" + "updatedAt": "2018-09-07T18:28:49.232Z" } \ No newline at end of file diff --git a/build/contracts/MarketContractRegistry.json b/build/contracts/MarketContractRegistry.json index 7ddc61d..1d34348 100644 --- a/build/contracts/MarketContractRegistry.json +++ b/build/contracts/MarketContractRegistry.json @@ -193,14 +193,14 @@ "type": "function" } ], - "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d26806100536000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318c0c695146100935780638da5cb5b146100d65780639244f4961461012d578063a051d9c314610170578063ad23de63146101b3578063c6f5d91f1461020e578063d8fbbf311461027a578063f2fde38b146102df575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610322565b005b3480156100e257600080fd5b506100eb610474565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013957600080fd5b5061016e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610499565b005b34801561017c57600080fd5b506101b1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a4565b005b3480156101bf57600080fd5b506101f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107f5565b604051808215151515815260200191505060405180910390f35b34801561021a57600080fd5b5061022361084b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561026657808201518184015260208101905061024b565b505050509050019250505060405180910390f35b34801561028657600080fd5b506102c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108d9565b604051808215151515815260200191505060405180910390f35b3480156102eb57600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b54565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561037d57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156103d657600080fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f960c6a67a1f0f46ddffd138f2b7f44cbc573d0e0a073363b287a257b121dc48a60405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061053d5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b151561054857600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156105a157600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f534d18c8ff24ba5980906d732f3075704749427353734fbbf05d50485643b12460405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ff57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561075757600080fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f5d6ac55db628f137c53a554c300a684dc6b3db9d8f24e9611ea5e84c282d177d60405160405180910390a250565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b606060028054806020026020016040519081016040528092919081815260200182805480156108cf57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610885575b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561093657600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561098e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166002838154811015156109b457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a0157600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002600160028054905003815481101515610a7057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600283815481101515610aaa57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610b0a9190610ca9565b508273ffffffffffffffffffffffffffffffffffffffff167f535611fb62fa2a833988f283b779e417e996813e44046f521d76c17b5943b08c60405160405180910390a292915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610baf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610beb57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b815481835581811115610cd057818360005260206000209182019101610ccf9190610cd5565b5b505050565b610cf791905b80821115610cf3576000816000905550600101610cdb565b5090565b905600a165627a7a72305820616ebb82a9a852784f79b2b0e1e2b1c725ed3452f03a7e21dc5e16bbe8ee4a100029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318c0c695146100935780638da5cb5b146100d65780639244f4961461012d578063a051d9c314610170578063ad23de63146101b3578063c6f5d91f1461020e578063d8fbbf311461027a578063f2fde38b146102df575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610322565b005b3480156100e257600080fd5b506100eb610474565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013957600080fd5b5061016e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610499565b005b34801561017c57600080fd5b506101b1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a4565b005b3480156101bf57600080fd5b506101f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107f5565b604051808215151515815260200191505060405180910390f35b34801561021a57600080fd5b5061022361084b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561026657808201518184015260208101905061024b565b505050509050019250505060405180910390f35b34801561028657600080fd5b506102c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108d9565b604051808215151515815260200191505060405180910390f35b3480156102eb57600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b54565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561037d57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156103d657600080fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f960c6a67a1f0f46ddffd138f2b7f44cbc573d0e0a073363b287a257b121dc48a60405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061053d5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b151561054857600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156105a157600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f534d18c8ff24ba5980906d732f3075704749427353734fbbf05d50485643b12460405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ff57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561075757600080fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f5d6ac55db628f137c53a554c300a684dc6b3db9d8f24e9611ea5e84c282d177d60405160405180910390a250565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b606060028054806020026020016040519081016040528092919081815260200182805480156108cf57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610885575b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561093657600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561098e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166002838154811015156109b457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a0157600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002600160028054905003815481101515610a7057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600283815481101515610aaa57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610b0a9190610ca9565b508273ffffffffffffffffffffffffffffffffffffffff167f535611fb62fa2a833988f283b779e417e996813e44046f521d76c17b5943b08c60405160405180910390a292915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610baf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610beb57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b815481835581811115610cd057818360005260206000209182019101610ccf9190610cd5565b5b505050565b610cf791905b80821115610cf3576000816000905550600101610cdb565b5090565b905600a165627a7a72305820616ebb82a9a852784f79b2b0e1e2b1c725ed3452f03a7e21dc5e16bbe8ee4a100029", + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d26806100536000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318c0c695146100935780638da5cb5b146100d65780639244f4961461012d578063a051d9c314610170578063ad23de63146101b3578063c6f5d91f1461020e578063d8fbbf311461027a578063f2fde38b146102df575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610322565b005b3480156100e257600080fd5b506100eb610474565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013957600080fd5b5061016e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610499565b005b34801561017c57600080fd5b506101b1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a4565b005b3480156101bf57600080fd5b506101f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107f5565b604051808215151515815260200191505060405180910390f35b34801561021a57600080fd5b5061022361084b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561026657808201518184015260208101905061024b565b505050509050019250505060405180910390f35b34801561028657600080fd5b506102c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108d9565b604051808215151515815260200191505060405180910390f35b3480156102eb57600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b54565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561037d57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156103d657600080fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f960c6a67a1f0f46ddffd138f2b7f44cbc573d0e0a073363b287a257b121dc48a60405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061053d5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b151561054857600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156105a157600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f534d18c8ff24ba5980906d732f3075704749427353734fbbf05d50485643b12460405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ff57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561075757600080fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f5d6ac55db628f137c53a554c300a684dc6b3db9d8f24e9611ea5e84c282d177d60405160405180910390a250565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b606060028054806020026020016040519081016040528092919081815260200182805480156108cf57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610885575b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561093657600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561098e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166002838154811015156109b457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a0157600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002600160028054905003815481101515610a7057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600283815481101515610aaa57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610b0a9190610ca9565b508273ffffffffffffffffffffffffffffffffffffffff167f535611fb62fa2a833988f283b779e417e996813e44046f521d76c17b5943b08c60405160405180910390a292915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610baf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610beb57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b815481835581811115610cd057818360005260206000209182019101610ccf9190610cd5565b5b505050565b610cf791905b80821115610cf3576000816000905550600101610cdb565b5090565b905600a165627a7a72305820b35027cbb3799cdb2671011612d1bc806ad0d774ddaaea7fb060182fb7903d7a0029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318c0c695146100935780638da5cb5b146100d65780639244f4961461012d578063a051d9c314610170578063ad23de63146101b3578063c6f5d91f1461020e578063d8fbbf311461027a578063f2fde38b146102df575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610322565b005b3480156100e257600080fd5b506100eb610474565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013957600080fd5b5061016e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610499565b005b34801561017c57600080fd5b506101b1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a4565b005b3480156101bf57600080fd5b506101f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107f5565b604051808215151515815260200191505060405180910390f35b34801561021a57600080fd5b5061022361084b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561026657808201518184015260208101905061024b565b505050509050019250505060405180910390f35b34801561028657600080fd5b506102c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108d9565b604051808215151515815260200191505060405180910390f35b3480156102eb57600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b54565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561037d57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156103d657600080fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f960c6a67a1f0f46ddffd138f2b7f44cbc573d0e0a073363b287a257b121dc48a60405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061053d5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b151561054857600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156105a157600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f534d18c8ff24ba5980906d732f3075704749427353734fbbf05d50485643b12460405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ff57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561075757600080fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f5d6ac55db628f137c53a554c300a684dc6b3db9d8f24e9611ea5e84c282d177d60405160405180910390a250565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b606060028054806020026020016040519081016040528092919081815260200182805480156108cf57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610885575b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561093657600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561098e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166002838154811015156109b457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a0157600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002600160028054905003815481101515610a7057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600283815481101515610aaa57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610b0a9190610ca9565b508273ffffffffffffffffffffffffffffffffffffffff167f535611fb62fa2a833988f283b779e417e996813e44046f521d76c17b5943b08c60405160405180910390a292915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610baf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610beb57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b815481835581811115610cd057818360005260206000209182019101610ccf9190610cd5565b5b505050565b610cf791905b80821115610cf3576000816000905550600101610cdb565b5090565b905600a165627a7a72305820b35027cbb3799cdb2671011612d1bc806ad0d774ddaaea7fb060182fb7903d7a0029", "sourceMap": "833:3508:4:-;;;509:10:25;501:5;;:18;;;;;;;;;;;;;;;;;;833:3508:4;;;;;;", "deployedSourceMap": "833:3508:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3713:242;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3713:242:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;3151:349:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3151:349:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;4092:247;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4092:247:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1605:138:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1836:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1836:105:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1836:105:4;;;;;;;;;;;;;;;;;2284:608;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2284:608:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;832:174:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;832:174:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;3713:242:4;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;3802:23:4;:39;3826:14;3802:39;;;;;;;;;;;;;;;;;;;;;;;;;3801:40;3793:49;;;;;;;;3894:4;3852:23;:39;3876:14;3852:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;3933:14;3913:35;;;;;;;;;;;;3713:242;:::o;238:20:25:-;;;;;;;;;;;;;:::o;3151:349:4:-;3248:5;;;;;;;;;;;3234:19;;:10;:19;;;:58;;;;3257:23;:35;3281:10;3257:35;;;;;;;;;;;;;;;;;;;;;;;;;3234:58;3226:67;;;;;;;;3312:13;:30;3326:15;3312:30;;;;;;;;;;;;;;;;;;;;;;;;;3311:31;3303:40;;;;;;;;3386:4;3353:13;:30;3367:15;3353:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;3400:16;3422:15;3400:38;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3400:38:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3477:15;3453:40;;;;;;;;;;;;3151:349;:::o;4092:247::-;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;4183:23:4;:39;4207:14;4183:39;;;;;;;;;;;;;;;;;;;;;;;;;4175:48;;;;;;;;4275:5;4233:23;:39;4257:14;4233:39;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;4317:14;4295:37;;;;;;;;;;;;4092:247;:::o;1605:138::-;1683:4;1706:13;:30;1720:15;1706:30;;;;;;;;;;;;;;;;;;;;;;;;;1699:37;;1605:138;;;:::o;1836:105::-;1890:9;1918:16;1911:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1836:105;:::o;2284:608::-;2417:4;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;2445:13:4;:30;2459:15;2445:30;;;;;;;;;;;;;;;;;;;;;;;;;2437:39;;;;;;;;2530:15;2494:51;;:16;2511:14;2494:32;;;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;2486:60;;;;;;;;2589:5;2556:13;:30;2570:15;2556:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;2743:16;2786:1;2760:16;:23;;;;:27;2743:45;;;;;;;;;;;;;;;;;;;;;;;;;;;2708:16;2725:14;2708:32;;;;;;;;;;;;;;;;;;:80;;;;;;;;;;;;;;;;;;2825:1;2798:16;:28;;;;;;;;;;;;;;:::i;:::-;;2869:15;2841:44;;;;;;;;;;;;2284:608;;;;:::o;832:174:25:-;653:5;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;928:1;908:22;;:8;:22;;;;900:31;;;;;;;;970:8;942:37;;963:5;;;;;;;;;;;942:37;;;;;;;;;;;;993:8;985:5;;:16;;;;;;;;;;;;;;;;;;832:174;:::o;833:3508:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "/*\n Copyright 2017-2018 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"./MarketContractRegistryInterface.sol\";\n\n\n/// @title MarketContractRegistry\n/// @author Phil Elsasser \ncontract MarketContractRegistry is Ownable, MarketContractRegistryInterface {\n\n mapping(address => bool) isWhiteListed;\n address[] addressWhiteList; // record of currently deployed addresses;\n mapping(address => bool) factoryAddressWhiteList; // record of authorized factories\n\n // events\n event AddressAddedToWhitelist(address indexed contractAddress);\n event AddressRemovedFromWhitelist(address indexed contractAddress);\n event FactoryAddressAdded(address indexed factoryAddress);\n event FactoryAddressRemoved(address indexed factoryAddress);\n\n /*\n // External Methods\n */\n\n /// @notice determines if an address is a valid MarketContract\n /// @return false if the address is not white listed.\n function isAddressWhiteListed(address contractAddress) external view returns (bool) {\n return isWhiteListed[contractAddress];\n }\n\n /// @notice all currently whitelisted addresses\n /// returns array of addresses\n function getAddressWhiteList() external view returns (address[]) {\n return addressWhiteList;\n }\n\n /// @dev allows for the owner to remove a white listed contract, eventually ownership could transition to\n /// a decentralized smart contract of community members to vote\n /// @param contractAddress contract to removed from white list\n /// @param whiteListIndex of the contractAddress in the addressWhiteList to be removed.\n function removeContractFromWhiteList(\n address contractAddress,\n uint whiteListIndex\n ) external onlyOwner returns (bool)\n {\n require(isWhiteListed[contractAddress]);\n require(addressWhiteList[whiteListIndex] == contractAddress);\n isWhiteListed[contractAddress] = false;\n\n // push the last item in array to replace the address we are removing and then trim the array.\n addressWhiteList[whiteListIndex] = addressWhiteList[addressWhiteList.length - 1];\n addressWhiteList.length -= 1;\n emit AddressRemovedFromWhitelist(contractAddress);\n }\n\n /// @dev allows for the owner or factory to add a white listed contract, eventually ownership could transition to\n /// a decentralized smart contract of community members to vote\n /// @param contractAddress contract to removed from white list\n function addAddressToWhiteList(address contractAddress) external {\n require(msg.sender == owner || factoryAddressWhiteList[msg.sender]);\n require(!isWhiteListed[contractAddress]);\n isWhiteListed[contractAddress] = true;\n addressWhiteList.push(contractAddress);\n emit AddressAddedToWhitelist(contractAddress);\n }\n\n /// @dev allows for the owner to add a new address of a factory responsible for creating new market contracts\n /// @param factoryAddress address of factory to be allowed to add contracts to whitelist\n function addFactoryAddress(address factoryAddress) external onlyOwner {\n require(!factoryAddressWhiteList[factoryAddress]);\n factoryAddressWhiteList[factoryAddress] = true;\n emit FactoryAddressAdded(factoryAddress);\n }\n\n /// @dev allows for the owner to remove an address of a factory\n /// @param factoryAddress address of factory to be removed\n function removeFactoryAddress(address factoryAddress) external onlyOwner {\n require(factoryAddressWhiteList[factoryAddress]);\n factoryAddressWhiteList[factoryAddress] = false;\n emit FactoryAddressRemoved(factoryAddress);\n }\n}\n", - "sourcePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistry.sol", + "sourcePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistry.sol", "ast": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistry.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistry.sol", "exportedSymbols": { "MarketContractRegistry": [ 1717 @@ -232,7 +232,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", "file": "./MarketContractRegistryInterface.sol", "id": 1521, "nodeType": "ImportDirective", @@ -2668,7 +2668,7 @@ "src": "608:3734:4" }, "legacyAST": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistry.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistry.sol", "exportedSymbols": { "MarketContractRegistry": [ 1717 @@ -2700,7 +2700,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", "file": "./MarketContractRegistryInterface.sol", "id": 1521, "nodeType": "ImportDirective", @@ -5209,10 +5209,10 @@ } }, "links": {}, - "address": "0x54de029511aed74d09b68f7420e6113d0131c766", - "transactionHash": "0x88b4cfc8c44e5f75f00557f8fba13dc548a06f5c8a8c7e64b31edb07fb747dda" + "address": "0xb721da9d20b1889bfb1d806aa6af21b8da7c7216", + "transactionHash": "0x9905164e6402f6c08d3426bb672dfe20abe4415becffefd86c08c043539b4a46" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-09-07T17:31:18.159Z" + "updatedAt": "2018-09-07T18:28:49.249Z" } \ No newline at end of file diff --git a/build/contracts/MarketToken.json b/build/contracts/MarketToken.json index 51b2730..9e6527f 100644 --- a/build/contracts/MarketToken.json +++ b/build/contracts/MarketToken.json @@ -625,14 +625,14 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5060405160408061253d8339810180604052810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160068190555080600781905550601260ff16600a0a6323c3460002600281905550601260ff16600a0a6323c3460002600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505061243c806101016000396000f30060806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101ff57806318160ddd1461026457806323b872dd1461028f5780632ff2e9dc14610314578063313ce5671461033f5780633cad7c4e1461037057806340fc5e7a1461039d57806342966c68146103f457806345977d03146104215780634f1e43341461044e578063661884631461047b5780636e8c57e6146104e057806370a082311461050b5780637e3475a814610562578063802049ac1461058d57806384281dcc146105d05780638da5cb5b1461062b57806395d89b41146106825780639d564d9a14610712578063a9059cbb1461075f578063aafd775e146107c4578063c752ff621461083b578063cfab472f14610866578063d229a94a146108e1578063d73dd6231461092e578063dd62ed3e14610993578063f2fde38b14610a0a575b600080fd5b34801561017b57600080fd5b50610184610a4d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c45780820151818401526020810190506101a9565b50505050905090810190601f1680156101f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561027057600080fd5b50610279610b78565b6040518082815260200191505060405180910390f35b34801561029b57600080fd5b506102fa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b82565b604051808215151515815260200191505060405180910390f35b34801561032057600080fd5b50610329610f41565b6040518082815260200191505060405180910390f35b34801561034b57600080fd5b50610354610f52565b604051808260ff1660ff16815260200191505060405180910390f35b34801561037c57600080fd5b5061039b60048036038101908080359060200190929190505050610f57565b005b3480156103a957600080fd5b506103b2610fbc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040057600080fd5b5061041f60048036038101908080359060200190929190505050610fe2565b005b34801561042d57600080fd5b5061044c60048036038101908080359060200190929190505050610fef565b005b34801561045a57600080fd5b50610479600480360381019080803590602001909291905050506111d8565b005b34801561048757600080fd5b506104c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123d565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b506104f56114ce565b6040518082815260200191505060405180910390f35b34801561051757600080fd5b5061054c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114d4565b6040518082815260200191505060405180910390f35b34801561056e57600080fd5b5061057761151d565b6040518082815260200191505060405180910390f35b34801561059957600080fd5b506105ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611523565b005b3480156105dc57600080fd5b50610611600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c2565b604051808215151515815260200191505060405180910390f35b34801561063757600080fd5b50610640611610565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068e57600080fd5b50610697611635565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d75780820151818401526020810190506106bc565b50505050905090810190601f1680156107045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071e57600080fd5b5061075d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061166e565b005b34801561076b57600080fd5b506107aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117f5565b604051808215151515815260200191505060405180910390f35b3480156107d057600080fd5b50610825600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a19565b6040518082815260200191505060405180910390f35b34801561084757600080fd5b50610850611aa0565b6040518082815260200191505060405180910390f35b34801561087257600080fd5b506108c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aa6565b604051808215151515815260200191505060405180910390f35b3480156108ed57600080fd5b5061092c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b32565b005b34801561093a57600080fd5b50610979600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cbb565b604051808215151515815260200191505060405180910390f35b34801561099f57600080fd5b506109f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb7565b6040518082815260200191505060405180910390f35b348015610a1657600080fd5b50610a4b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f3e565b005b6040805190810160405280601581526020017f4d41524b45542050726f746f636f6c20546f6b656e000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600254905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610bbf57600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c0d57600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c9857600080fd5b610cea82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d7f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e5182600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601260ff16600a0a6323c346000281565b601281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb257600080fd5b8060068190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fec33826120c8565b50565b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561104d57600080fd5b61105681610fe2565b61106b816005546120ac90919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663753e88e533836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561113657600080fd5b505af115801561114a573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa6eb8a5f37ca5f03caebe01d969f49f93dd089e57d04580ba05974548fd44e77836040518082815260200191505060405180910390a350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123357600080fd5b8060078190555050565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561134e576000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113e2565b611361838261209390919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60075481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157e57600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600754600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410159050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f4d4b54000000000000000000000000000000000000000000000000000000000081525081565b60006116ff82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b905080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061178b8261227e565b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561183257600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561188057600080fd5b6118d282600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196782600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60055481565b6000600654600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015905092915050565b6000611bc382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b9050611bcf30836117f5565b5080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b6000611d4c82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fd557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111515156120a157fe5b818303905092915050565b600081830190508281101515156120bf57fe5b80905092915050565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561211657600080fd5b61216881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121c08160025461209390919063ffffffff16565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6122d081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236581600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505600a165627a7a72305820250995376a627d4e5d341f3dbdb6058ac42b2c47c1964112fd39fccdb346893d0029", - "deployedBytecode": "0x60806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101ff57806318160ddd1461026457806323b872dd1461028f5780632ff2e9dc14610314578063313ce5671461033f5780633cad7c4e1461037057806340fc5e7a1461039d57806342966c68146103f457806345977d03146104215780634f1e43341461044e578063661884631461047b5780636e8c57e6146104e057806370a082311461050b5780637e3475a814610562578063802049ac1461058d57806384281dcc146105d05780638da5cb5b1461062b57806395d89b41146106825780639d564d9a14610712578063a9059cbb1461075f578063aafd775e146107c4578063c752ff621461083b578063cfab472f14610866578063d229a94a146108e1578063d73dd6231461092e578063dd62ed3e14610993578063f2fde38b14610a0a575b600080fd5b34801561017b57600080fd5b50610184610a4d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c45780820151818401526020810190506101a9565b50505050905090810190601f1680156101f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561027057600080fd5b50610279610b78565b6040518082815260200191505060405180910390f35b34801561029b57600080fd5b506102fa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b82565b604051808215151515815260200191505060405180910390f35b34801561032057600080fd5b50610329610f41565b6040518082815260200191505060405180910390f35b34801561034b57600080fd5b50610354610f52565b604051808260ff1660ff16815260200191505060405180910390f35b34801561037c57600080fd5b5061039b60048036038101908080359060200190929190505050610f57565b005b3480156103a957600080fd5b506103b2610fbc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040057600080fd5b5061041f60048036038101908080359060200190929190505050610fe2565b005b34801561042d57600080fd5b5061044c60048036038101908080359060200190929190505050610fef565b005b34801561045a57600080fd5b50610479600480360381019080803590602001909291905050506111d8565b005b34801561048757600080fd5b506104c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123d565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b506104f56114ce565b6040518082815260200191505060405180910390f35b34801561051757600080fd5b5061054c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114d4565b6040518082815260200191505060405180910390f35b34801561056e57600080fd5b5061057761151d565b6040518082815260200191505060405180910390f35b34801561059957600080fd5b506105ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611523565b005b3480156105dc57600080fd5b50610611600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c2565b604051808215151515815260200191505060405180910390f35b34801561063757600080fd5b50610640611610565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068e57600080fd5b50610697611635565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d75780820151818401526020810190506106bc565b50505050905090810190601f1680156107045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071e57600080fd5b5061075d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061166e565b005b34801561076b57600080fd5b506107aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117f5565b604051808215151515815260200191505060405180910390f35b3480156107d057600080fd5b50610825600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a19565b6040518082815260200191505060405180910390f35b34801561084757600080fd5b50610850611aa0565b6040518082815260200191505060405180910390f35b34801561087257600080fd5b506108c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aa6565b604051808215151515815260200191505060405180910390f35b3480156108ed57600080fd5b5061092c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b32565b005b34801561093a57600080fd5b50610979600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cbb565b604051808215151515815260200191505060405180910390f35b34801561099f57600080fd5b506109f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb7565b6040518082815260200191505060405180910390f35b348015610a1657600080fd5b50610a4b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f3e565b005b6040805190810160405280601581526020017f4d41524b45542050726f746f636f6c20546f6b656e000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600254905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610bbf57600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c0d57600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c9857600080fd5b610cea82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d7f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e5182600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601260ff16600a0a6323c346000281565b601281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb257600080fd5b8060068190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fec33826120c8565b50565b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561104d57600080fd5b61105681610fe2565b61106b816005546120ac90919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663753e88e533836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561113657600080fd5b505af115801561114a573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa6eb8a5f37ca5f03caebe01d969f49f93dd089e57d04580ba05974548fd44e77836040518082815260200191505060405180910390a350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123357600080fd5b8060078190555050565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561134e576000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113e2565b611361838261209390919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60075481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157e57600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600754600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410159050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f4d4b54000000000000000000000000000000000000000000000000000000000081525081565b60006116ff82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b905080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061178b8261227e565b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561183257600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561188057600080fd5b6118d282600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196782600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60055481565b6000600654600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015905092915050565b6000611bc382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b9050611bcf30836117f5565b5080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b6000611d4c82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fd557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111515156120a157fe5b818303905092915050565b600081830190508281101515156120bf57fe5b80905092915050565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561211657600080fd5b61216881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121c08160025461209390919063ffffffff16565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6122d081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236581600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505600a165627a7a72305820250995376a627d4e5d341f3dbdb6058ac42b2c47c1964112fd39fccdb346893d0029", + "bytecode": "0x608060405234801561001057600080fd5b5060405160408061253d8339810180604052810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160068190555080600781905550601260ff16600a0a6323c3460002600281905550601260ff16600a0a6323c3460002600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505061243c806101016000396000f30060806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101ff57806318160ddd1461026457806323b872dd1461028f5780632ff2e9dc14610314578063313ce5671461033f5780633cad7c4e1461037057806340fc5e7a1461039d57806342966c68146103f457806345977d03146104215780634f1e43341461044e578063661884631461047b5780636e8c57e6146104e057806370a082311461050b5780637e3475a814610562578063802049ac1461058d57806384281dcc146105d05780638da5cb5b1461062b57806395d89b41146106825780639d564d9a14610712578063a9059cbb1461075f578063aafd775e146107c4578063c752ff621461083b578063cfab472f14610866578063d229a94a146108e1578063d73dd6231461092e578063dd62ed3e14610993578063f2fde38b14610a0a575b600080fd5b34801561017b57600080fd5b50610184610a4d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c45780820151818401526020810190506101a9565b50505050905090810190601f1680156101f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561027057600080fd5b50610279610b78565b6040518082815260200191505060405180910390f35b34801561029b57600080fd5b506102fa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b82565b604051808215151515815260200191505060405180910390f35b34801561032057600080fd5b50610329610f41565b6040518082815260200191505060405180910390f35b34801561034b57600080fd5b50610354610f52565b604051808260ff1660ff16815260200191505060405180910390f35b34801561037c57600080fd5b5061039b60048036038101908080359060200190929190505050610f57565b005b3480156103a957600080fd5b506103b2610fbc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040057600080fd5b5061041f60048036038101908080359060200190929190505050610fe2565b005b34801561042d57600080fd5b5061044c60048036038101908080359060200190929190505050610fef565b005b34801561045a57600080fd5b50610479600480360381019080803590602001909291905050506111d8565b005b34801561048757600080fd5b506104c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123d565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b506104f56114ce565b6040518082815260200191505060405180910390f35b34801561051757600080fd5b5061054c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114d4565b6040518082815260200191505060405180910390f35b34801561056e57600080fd5b5061057761151d565b6040518082815260200191505060405180910390f35b34801561059957600080fd5b506105ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611523565b005b3480156105dc57600080fd5b50610611600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c2565b604051808215151515815260200191505060405180910390f35b34801561063757600080fd5b50610640611610565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068e57600080fd5b50610697611635565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d75780820151818401526020810190506106bc565b50505050905090810190601f1680156107045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071e57600080fd5b5061075d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061166e565b005b34801561076b57600080fd5b506107aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117f5565b604051808215151515815260200191505060405180910390f35b3480156107d057600080fd5b50610825600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a19565b6040518082815260200191505060405180910390f35b34801561084757600080fd5b50610850611aa0565b6040518082815260200191505060405180910390f35b34801561087257600080fd5b506108c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aa6565b604051808215151515815260200191505060405180910390f35b3480156108ed57600080fd5b5061092c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b32565b005b34801561093a57600080fd5b50610979600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cbb565b604051808215151515815260200191505060405180910390f35b34801561099f57600080fd5b506109f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb7565b6040518082815260200191505060405180910390f35b348015610a1657600080fd5b50610a4b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f3e565b005b6040805190810160405280601581526020017f4d41524b45542050726f746f636f6c20546f6b656e000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600254905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610bbf57600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c0d57600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c9857600080fd5b610cea82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d7f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e5182600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601260ff16600a0a6323c346000281565b601281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb257600080fd5b8060068190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fec33826120c8565b50565b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561104d57600080fd5b61105681610fe2565b61106b816005546120ac90919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663753e88e533836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561113657600080fd5b505af115801561114a573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa6eb8a5f37ca5f03caebe01d969f49f93dd089e57d04580ba05974548fd44e77836040518082815260200191505060405180910390a350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123357600080fd5b8060078190555050565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561134e576000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113e2565b611361838261209390919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60075481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157e57600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600754600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410159050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f4d4b54000000000000000000000000000000000000000000000000000000000081525081565b60006116ff82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b905080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061178b8261227e565b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561183257600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561188057600080fd5b6118d282600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196782600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60055481565b6000600654600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015905092915050565b6000611bc382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b9050611bcf30836117f5565b5080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b6000611d4c82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fd557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111515156120a157fe5b818303905092915050565b600081830190508281101515156120bf57fe5b80905092915050565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561211657600080fd5b61216881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121c08160025461209390919063ffffffff16565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6122d081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236581600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505600a165627a7a72305820dbd051ef0462b40d7e944b862d249908b3d5d804e7662dc4c3afc64a89f230fe0029", + "deployedBytecode": "0x60806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101ff57806318160ddd1461026457806323b872dd1461028f5780632ff2e9dc14610314578063313ce5671461033f5780633cad7c4e1461037057806340fc5e7a1461039d57806342966c68146103f457806345977d03146104215780634f1e43341461044e578063661884631461047b5780636e8c57e6146104e057806370a082311461050b5780637e3475a814610562578063802049ac1461058d57806384281dcc146105d05780638da5cb5b1461062b57806395d89b41146106825780639d564d9a14610712578063a9059cbb1461075f578063aafd775e146107c4578063c752ff621461083b578063cfab472f14610866578063d229a94a146108e1578063d73dd6231461092e578063dd62ed3e14610993578063f2fde38b14610a0a575b600080fd5b34801561017b57600080fd5b50610184610a4d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c45780820151818401526020810190506101a9565b50505050905090810190601f1680156101f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561027057600080fd5b50610279610b78565b6040518082815260200191505060405180910390f35b34801561029b57600080fd5b506102fa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b82565b604051808215151515815260200191505060405180910390f35b34801561032057600080fd5b50610329610f41565b6040518082815260200191505060405180910390f35b34801561034b57600080fd5b50610354610f52565b604051808260ff1660ff16815260200191505060405180910390f35b34801561037c57600080fd5b5061039b60048036038101908080359060200190929190505050610f57565b005b3480156103a957600080fd5b506103b2610fbc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040057600080fd5b5061041f60048036038101908080359060200190929190505050610fe2565b005b34801561042d57600080fd5b5061044c60048036038101908080359060200190929190505050610fef565b005b34801561045a57600080fd5b50610479600480360381019080803590602001909291905050506111d8565b005b34801561048757600080fd5b506104c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123d565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b506104f56114ce565b6040518082815260200191505060405180910390f35b34801561051757600080fd5b5061054c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114d4565b6040518082815260200191505060405180910390f35b34801561056e57600080fd5b5061057761151d565b6040518082815260200191505060405180910390f35b34801561059957600080fd5b506105ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611523565b005b3480156105dc57600080fd5b50610611600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c2565b604051808215151515815260200191505060405180910390f35b34801561063757600080fd5b50610640611610565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068e57600080fd5b50610697611635565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d75780820151818401526020810190506106bc565b50505050905090810190601f1680156107045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071e57600080fd5b5061075d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061166e565b005b34801561076b57600080fd5b506107aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117f5565b604051808215151515815260200191505060405180910390f35b3480156107d057600080fd5b50610825600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a19565b6040518082815260200191505060405180910390f35b34801561084757600080fd5b50610850611aa0565b6040518082815260200191505060405180910390f35b34801561087257600080fd5b506108c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aa6565b604051808215151515815260200191505060405180910390f35b3480156108ed57600080fd5b5061092c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b32565b005b34801561093a57600080fd5b50610979600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cbb565b604051808215151515815260200191505060405180910390f35b34801561099f57600080fd5b506109f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb7565b6040518082815260200191505060405180910390f35b348015610a1657600080fd5b50610a4b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f3e565b005b6040805190810160405280601581526020017f4d41524b45542050726f746f636f6c20546f6b656e000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600254905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610bbf57600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c0d57600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610c9857600080fd5b610cea82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d7f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e5182600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601260ff16600a0a6323c346000281565b601281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb257600080fd5b8060068190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fec33826120c8565b50565b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561104d57600080fd5b61105681610fe2565b61106b816005546120ac90919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663753e88e533836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561113657600080fd5b505af115801561114a573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa6eb8a5f37ca5f03caebe01d969f49f93dd089e57d04580ba05974548fd44e77836040518082815260200191505060405180910390a350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123357600080fd5b8060078190555050565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561134e576000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113e2565b611361838261209390919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60075481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157e57600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600754600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410159050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f4d4b54000000000000000000000000000000000000000000000000000000000081525081565b60006116ff82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b905080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061178b8261227e565b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561183257600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561188057600080fd5b6118d282600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196782600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60055481565b6000600654600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015905092915050565b6000611bc382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b9050611bcf30836117f5565b5080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5893bf91422655305d16e66cf1b6ecd4645b071f6904767d5d79bd91556e3fcf836040518082815260200191505060405180910390a3505050565b6000611d4c82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fd557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111515156120a157fe5b818303905092915050565b600081830190508281101515156120bf57fe5b80905092915050565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561211657600080fd5b61216881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121c08160025461209390919063ffffffff16565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6122d081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236581600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ac90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505600a165627a7a72305820dbd051ef0462b40d7e944b862d249908b3d5d804e7662dc4c3afc64a89f230fe0029", "sourceMap": "927:5128:20:-;;;1536:400;8:9:-1;5:2;;;30:1;27;20:12;5:2;1536:400:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;509:10:25;501:5;;:18;;;;;;;;;;;;;;;;;;1643:19:20;1619:21;:43;;;;1708:21;1672:33;:57;;;;1110:2;1173:14;;1169:2;:18;1157:9;:30;1739:12;:29;;;;1110:2;1173:14;;1169:2;:18;1157:9;:30;1850:8;:20;1859:10;1850:20;;;;;;;;;;;;;;;:37;;;;1536:400;;927:5128;;;;;;", "deployedSourceMap": "927:5128:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;975:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;975:53:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;975:53:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1803:188:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1803:188:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:26;;;;;;;;;;;;;;;;;;;;;;;736:444:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:444:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1119:68:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1119:68:20;;;;;;;;;;;;;;;;;;;;;;;1077:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1077:35:20;;;;;;;;;;;;;;;;;;;;;;;;;;;5180:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5180:119:20;;;;;;;;;;;;;;;;;;;;;;;;;;1189:32:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1189:32:21;;;;;;;;;;;;;;;;;;;;;;;;;;;353:73:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:73:27;;;;;;;;;;;;;;;;;;;;;;;;;;1624:363:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1624:363:21;;;;;;;;;;;;;;;;;;;;;;;;;;5477:141:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5477:141:20;;;;;;;;;;;;;;;;;;;;;;;;;;3617:403:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3617:403:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1280:45:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1280:45:20;;;;;;;;;;;;;;;;;;;;;;;1131:99:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1241:33:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1241:33:20;;;;;;;;;;;;;;;;;;;;;;;2125:124:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2125:124:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;2754:180:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2754:180:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;1034:37:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1034:37:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1034:37:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3853:617;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3853:617:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4721:213:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4721:213:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1270:28:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1270:28:21;;;;;;;;;;;;;;;;;;;;;;;2298:239:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2298:239:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3151:476;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3151:476:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2893:262:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2893:262:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2310:126:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;832:174:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;832:174:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;975:53:20;;;;;;;;;;;;;;;;;;;;:::o;1803:188:31:-;1870:4;1914:6;1882:7;:19;1890:10;1882:19;;;;;;;;;;;;;;;:29;1902:8;1882:29;;;;;;;;;;;;;;;:38;;;;1952:8;1931:38;;1940:10;1931:38;;;1962:6;1931:38;;;;;;;;;;;;;;;;;;1982:4;1975:11;;1803:188;;;;:::o;371:83:26:-;415:7;437:12;;430:19;;371:83;:::o;736:444:31:-;818:4;853:1;838:17;;:3;:17;;;;830:26;;;;;;;;880:8;:15;889:5;880:15;;;;;;;;;;;;;;;;870:6;:25;;862:34;;;;;;;;920:7;:14;928:5;920:14;;;;;;;;;;;;;;;:26;935:10;920:26;;;;;;;;;;;;;;;;910:6;:36;;902:45;;;;;;;;972:27;992:6;972:8;:15;981:5;972:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;954:8;:15;963:5;954:15;;;;;;;;;;;;;;;:45;;;;1021:25;1039:6;1021:8;:13;1030:3;1021:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1005:8;:13;1014:3;1005:13;;;;;;;;;;;;;;;:41;;;;1081:38;1112:6;1081:7;:14;1089:5;1081:14;;;;;;;;;;;;;;;:26;1096:10;1081:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1052:7;:14;1060:5;1052:14;;;;;;;;;;;;;;;:26;1067:10;1052:26;;;;;;;;;;;;;;;:67;;;;1146:3;1130:28;;1139:5;1130:28;;;1151:6;1130:28;;;;;;;;;;;;;;;;;;1171:4;1164:11;;736:444;;;;;:::o;1119:68:20:-;1110:2;1173:14;;1169:2;:18;1157:9;:30;1119:68;:::o;1077:35::-;1110:2;1077:35;:::o;5180:119::-;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;5283:9:20;5259:21;:33;;;;5180:119;:::o;1189:32:21:-;;;;;;;;;;;;;:::o;353:73:27:-;396:25;402:10;414:6;396:5;:25::i;:::-;353:73;:::o;1624:363:21:-;1712:1;1683:31;;:17;;;;;;;;;;;:31;;;;1675:40;;;;;;;;1726:11;1731:5;1726:4;:11::i;:::-;1817:24;1835:5;1817:13;;:17;;:24;;;;:::i;:::-;1801:13;:40;;;;1870:17;;;;;;;;;;;1852:48;;;1901:10;1913:5;1852:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1852:67:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:67:21;;;;1955:17;;;;;;;;;;;1934:46;;1943:10;1934:46;;;1974:5;1934:46;;;;;;;;;;;;;;;;;;1624:363;:::o;5477:141:20:-;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;5601:10:20;5565:33;:46;;;;5477:141;:::o;3617:403:31:-;3700:4;3712:13;3728:7;:19;3736:10;3728:19;;;;;;;;;;;;;;;:29;3748:8;3728:29;;;;;;;;;;;;;;;;3712:45;;3786:8;3767:16;:27;3763:164;;;3836:1;3804:7;:19;3812:10;3804:19;;;;;;;;;;;;;;;:29;3824:8;3804:29;;;;;;;;;;;;;;;:33;;;;3763:164;;;3890:30;3903:16;3890:8;:12;;:30;;;;:::i;:::-;3858:7;:19;3866:10;3858:19;;;;;;;;;;;;;;;:29;3878:8;3858:29;;;;;;;;;;;;;;;:62;;;;3763:164;3958:8;3937:61;;3946:10;3937:61;;;3968:7;:19;3976:10;3968:19;;;;;;;;;;;;;;;:29;3988:8;3968:29;;;;;;;;;;;;;;;;3937:61;;;;;;;;;;;;;;;;;;4011:4;4004:11;;3617:403;;;;;:::o;1280:45:20:-;;;;:::o;1131:99:26:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;1241:33:20:-;;;;:::o;2125:124:21:-;653:5:25;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;2228:14:21;2208:17;;:34;;;;;;;;;;;;;;;;;;2125:124;:::o;2754:180:20:-;2846:4;2894:33;;2869:8;:21;2878:11;2869:21;;;;;;;;;;;;;;;;:58;;2862:65;;2754:180;;;:::o;238:20:25:-;;;;;;;;;;;;;:::o;1034:37:20:-;;;;;;;;;;;;;;;;;;;;:::o;3853:617::-;3943:26;3972:113;4064:11;3972:39;:62;4012:21;3972:62;;;;;;;;;;;;;;;:74;4035:10;3972:74;;;;;;;;;;;;;;;;:78;;:113;;;;:::i;:::-;3943:142;;4298:18;4221:39;:62;4261:21;4221:62;;;;;;;;;;;;;;;:74;4284:10;4221:74;;;;;;;;;;;;;;;:95;;;;4326:43;4357:11;4326:30;:43::i;:::-;4432:10;4384:79;;4409:21;4384:79;;;4444:18;4384:79;;;;;;;;;;;;;;;;;;3853:617;;;:::o;608:321:26:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;4721:213:20:-;4829:4;4852:39;:62;4892:21;4852:62;;;;;;;;;;;;;;;:75;4915:11;4852:75;;;;;;;;;;;;;;;;4845:82;;4721:213;;;;:::o;1270:28:21:-;;;;:::o;2298:239:20:-;2407:4;2509:21;;2430:39;:62;2470:21;2430:62;;;;;;;;;;;;;;;:75;2493:11;2430:75;;;;;;;;;;;;;;;;:100;;2423:107;;2298:239;;;;:::o;3151:476::-;3261:21;3285:111;3377:9;3285:39;:62;3325:21;3285:62;;;;;;;;;;;;;;;:74;3348:10;3285:74;;;;;;;;;;;;;;;;:78;;:111;;;;:::i;:::-;3261:135;;3406:25;3415:4;3421:9;3406:8;:25::i;:::-;;3518:13;3441:39;:62;3481:21;3441:62;;;;;;;;;;;;;;;:74;3504:10;3441:74;;;;;;;;;;;;;;;:90;;;;3594:10;3546:74;;3571:21;3546:74;;;3606:13;3546:74;;;;;;;;;;;;;;;;;;3151:476;;;:::o;2893:262:31:-;2971:4;3015:46;3049:11;3015:7;:19;3023:10;3015:19;;;;;;;;;;;;;;;:29;3035:8;3015:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;2983:7;:19;2991:10;2983:19;;;;;;;;;;;;;;;:29;3003:8;2983:29;;;;;;;;;;;;;;;:78;;;;3093:8;3072:61;;3081:10;3072:61;;;3103:7;:19;3111:10;3103:19;;;;;;;;;;;;;;;:29;3123:8;3103:29;;;;;;;;;;;;;;;;3072:61;;;;;;;;;;;;;;;;;;3146:4;3139:11;;2893:262;;;;:::o;2310:126::-;2384:7;2406;:15;2414:6;2406:15;;;;;;;;;;;;;;;:25;2422:8;2406:25;;;;;;;;;;;;;;;;2399:32;;2310:126;;;;:::o;832:174:25:-;653:5;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;928:1;908:22;;:8;:22;;;;900:31;;;;;;;;970:8;942:37;;963:5;;;;;;;;;;;942:37;;;;;;;;;;;;993:8;985:5;;:16;;;;;;;;;;;;;;;;;;832:174;:::o;836:110:24:-;894:7;921:1;916;:6;;909:14;;;;;;940:1;936;:5;929:12;;836:110;;;;:::o;1008:123::-;1066:9;1091:1;1087;:5;1083:9;;1110:1;1105;:6;;1098:14;;;;;;1125:1;1118:8;;1008:123;;;;:::o;430:438:27:-;508:8;:14;517:4;508:14;;;;;;;;;;;;;;;;498:6;:24;;490:33;;;;;;;;718:26;737:6;718:8;:14;727:4;718:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;701:8;:14;710:4;701:14;;;;;;;;;;;;;;;:43;;;;765:24;782:6;765:12;;:16;;:24;;;;:::i;:::-;750:12;:39;;;;805:4;800:18;;;811:6;800:18;;;;;;;;;;;;;;;;;;852:1;829:34;;838:4;829:34;;;856:6;829:34;;;;;;;;;;;;;;;;;;430:438;;:::o;5798:255:20:-;5891:31;5910:11;5891:8;:14;5900:4;5891:14;;;;;;;;;;;;;;;;:18;;:31;;;;:::i;:::-;5874:8;:14;5883:4;5874:14;;;;;;;;;;;;;;;:48;;;;5955:37;5980:11;5955:8;:20;5964:10;5955:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;5932:8;:20;5941:10;5932:20;;;;;;;;;;;;;;;:60;;;;6022:10;6007:39;;6016:4;6007:39;;;6034:11;6007:39;;;;;;;;;;;;;;;;;;5798:255;:::o", "source": "/*\n Copyright 2017-2018 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity ^0.4.24;\n\nimport \"./UpgradableToken.sol\";\n\n\n/// @title Market Token\n/// @notice Our membership token. Users must lock tokens to enable trading for a given Market Contract\n/// as well as have a minimum balance of tokens to create new Market Contracts.\n/// @author Phil Elsasser \ncontract MarketToken is UpgradeableToken {\n\n string public constant name = \"MARKET Protocol Token\";\n string public constant symbol = \"MKT\";\n uint8 public constant decimals = 18;\n\n uint public constant INITIAL_SUPPLY = 600000000 * 10**uint(decimals); // 600 million tokens with 18 decimals (6e+26)\n\n uint public lockQtyToAllowTrading;\n uint public minBalanceToAllowContractCreation;\n\n mapping(address => mapping(address => uint)) contractAddressToUserAddressToQtyLocked;\n\n event UpdatedUserLockedBalance(address indexed contractAddress, address indexed userAddress, uint balance);\n\n constructor(uint qtyToLockForTrading, uint minBalanceForCreation) public {\n lockQtyToAllowTrading = qtyToLockForTrading;\n minBalanceToAllowContractCreation = minBalanceForCreation;\n totalSupply_ = INITIAL_SUPPLY; //note totalSupply_ and INITIAL_SUPPLY may vary as token's are burnt.\n\n balances[msg.sender] = INITIAL_SUPPLY; // for now allocate all tokens to creator\n }\n\n /*\n // EXTERNAL METHODS\n */\n\n /// @notice checks if a user address has locked the needed qty to allow trading to a given contract address\n /// @param marketContractAddress address of the MarketContract\n /// @param userAddress address of the user\n /// @return true if user has locked tokens to trade the supplied marketContractAddress\n function isUserEnabledForContract(address marketContractAddress, address userAddress) external view returns (bool) {\n return contractAddressToUserAddressToQtyLocked[marketContractAddress][userAddress] >= lockQtyToAllowTrading;\n }\n\n /// @notice checks if a user address has enough token balance to be eligible to create a contract\n /// @param userAddress address of the user\n /// @return true if user has sufficient balance of tokens\n function isBalanceSufficientForContractCreation(address userAddress) external view returns (bool) {\n return balances[userAddress] >= minBalanceToAllowContractCreation;\n }\n\n /// @notice allows user to lock tokens to enable trading for a given market contract\n /// @param marketContractAddress address of the MarketContract\n /// @param qtyToLock desired qty of tokens to lock\n function lockTokensForTradingMarketContract(address marketContractAddress, uint qtyToLock) external {\n uint256 lockedBalance = contractAddressToUserAddressToQtyLocked[marketContractAddress][msg.sender].add(\n qtyToLock\n );\n transfer(this, qtyToLock);\n contractAddressToUserAddressToQtyLocked[marketContractAddress][msg.sender] = lockedBalance;\n emit UpdatedUserLockedBalance(marketContractAddress, msg.sender, lockedBalance);\n }\n\n /// @notice allows user to unlock tokens previously allocated to trading a MarketContract\n /// @param marketContractAddress address of the MarketContract\n /// @param qtyToUnlock desired qty of tokens to unlock\n function unlockTokens(address marketContractAddress, uint qtyToUnlock) external {\n uint256 balanceAfterUnLock = contractAddressToUserAddressToQtyLocked[marketContractAddress][msg.sender].sub(\n qtyToUnlock\n ); // no need to check balance, sub() will ensure sufficient balance to unlock!\n // update balance before external call!\n contractAddressToUserAddressToQtyLocked[marketContractAddress][msg.sender] = balanceAfterUnLock;\n transferLockedTokensBackToUser(qtyToUnlock);\n emit UpdatedUserLockedBalance(marketContractAddress, msg.sender, balanceAfterUnLock);\n }\n\n /// @notice get the currently locked balance for a user given the specific contract address\n /// @param marketContractAddress address of the MarketContract\n /// @param userAddress address of the user\n /// @return the locked balance\n function getLockedBalanceForUser(address marketContractAddress, address userAddress) external view returns (uint) {\n return contractAddressToUserAddressToQtyLocked[marketContractAddress][userAddress];\n }\n\n /*\n // EXTERNAL - ONLY CREATOR METHODS\n */\n\n /// @notice allows the creator to set the qty each user address needs to lock in\n /// order to trade a given MarketContract\n /// @param qtyToLock qty needed to enable trading\n function setLockQtyToAllowTrading(uint qtyToLock) external onlyOwner {\n lockQtyToAllowTrading = qtyToLock;\n }\n\n /// @notice allows the creator to set minimum balance a user must have in order to create MarketContracts\n /// @param minBalance balance to enable contract creation\n function setMinBalanceForContractCreation(uint minBalance) external onlyOwner {\n minBalanceToAllowContractCreation = minBalance;\n }\n\n /*\n // PRIVATE METHODS\n */\n\n /// @dev returns locked balance from this contract to the user's balance\n /// @param qtyToUnlock qty to return to user's balance\n function transferLockedTokensBackToUser(uint qtyToUnlock) private {\n balances[this] = balances[this].sub(qtyToUnlock);\n balances[msg.sender] = balances[msg.sender].add(qtyToUnlock);\n emit Transfer(this, msg.sender, qtyToUnlock);\n }\n}\n", - "sourcePath": "/home/parallels/MARKETProtocol/contracts/tokens/MarketToken.sol", + "sourcePath": "/home/pelsasser/MARKETProtocol/contracts/tokens/MarketToken.sol", "ast": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/tokens/MarketToken.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/tokens/MarketToken.sol", "exportedSymbols": { "MarketToken": [ 4327 @@ -653,7 +653,7 @@ "src": "608:24:20" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/tokens/UpgradableToken.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/tokens/UpgradableToken.sol", "file": "./UpgradableToken.sol", "id": 4071, "nodeType": "ImportDirective", @@ -3942,7 +3942,7 @@ "src": "608:5448:20" }, "legacyAST": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/tokens/MarketToken.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/tokens/MarketToken.sol", "exportedSymbols": { "MarketToken": [ 4327 @@ -3963,7 +3963,7 @@ "src": "608:24:20" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/tokens/UpgradableToken.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/tokens/UpgradableToken.sol", "file": "./UpgradableToken.sol", "id": 4071, "nodeType": "ImportDirective", @@ -7259,10 +7259,10 @@ "4": { "events": {}, "links": {}, - "address": "0x4a13d83d544f36de7f477601c81a50405c244135", - "transactionHash": "0xb6cd5baacdaf32f6f6c54d124f9fb548d5736440977abaf82426b5e277ddb76b" + "address": "0xd7a45a708ada3a4fe55f64b74f9504f5ea88e3b6", + "transactionHash": "0x4eef93e88899938a6314ba8dd5f635408c9860f6360f0872bc8d3d24e373ba9d" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-09-07T17:31:18.232Z" + "updatedAt": "2018-09-07T18:28:49.244Z" } \ No newline at end of file diff --git a/build/contracts/MathLib.json b/build/contracts/MathLib.json index df83747..9551595 100644 --- a/build/contracts/MathLib.json +++ b/build/contracts/MathLib.json @@ -37,14 +37,14 @@ "type": "function" } ], - "bytecode": "0x610185610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f3007300000000000000000000000000000000000000003014608060405260043610610058576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063ed981d4f1461005d575b600080fd5b6100a360048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506100b9565b6040518082815260200191505060405180910390f35b60008060008413156100e95786831115156100d757600090506100e4565b6100e18388610122565b90505b610109565b85831015156100fb5760009050610108565b6101058684610122565b90505b5b846101138561013b565b82020291505095945050505050565b600082821115151561013057fe5b818303905092915050565b60008082121561015057816000039050610154565b8190505b9190505600a165627a7a72305820f9db85e27ac93faf3da10968a5938d94d075410d77f94305a7147dac6d32e5170029", - "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610610058576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063ed981d4f1461005d575b600080fd5b6100a360048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506100b9565b6040518082815260200191505060405180910390f35b60008060008413156100e95786831115156100d757600090506100e4565b6100e18388610122565b90505b610109565b85831015156100fb5760009050610108565b6101058684610122565b90505b5b846101138561013b565b82020291505095945050505050565b600082821115151561013057fe5b818303905092915050565b60008082121561015057816000039050610154565b8190505b9190505600a165627a7a72305820f9db85e27ac93faf3da10968a5938d94d075410d77f94305a7147dac6d32e5170029", + "bytecode": "0x610185610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f3007300000000000000000000000000000000000000003014608060405260043610610058576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063ed981d4f1461005d575b600080fd5b6100a360048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506100b9565b6040518082815260200191505060405180910390f35b60008060008413156100e95786831115156100d757600090506100e4565b6100e18388610122565b90505b610109565b85831015156100fb5760009050610108565b6101058684610122565b90505b5b846101138561013b565b82020291505095945050505050565b600082821115151561013057fe5b818303905092915050565b60008082121561015057816000039050610154565b8190505b9190505600a165627a7a7230582039378c0ad36e59a0569b24747c874608db7653b8b9abf9aae0b7b030b4b5d9f30029", + "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610610058576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063ed981d4f1461005d575b600080fd5b6100a360048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506100b9565b6040518082815260200191505060405180910390f35b60008060008413156100e95786831115156100d757600090506100e4565b6100e18388610122565b90505b610109565b85831015156100fb5760009050610108565b6101058684610122565b90505b5b846101138561013b565b82020291505095945050505050565b600082821115151561013057fe5b818303905092915050565b60008082121561015057816000039050610154565b8190505b9190505600a165627a7a7230582039378c0ad36e59a0569b24747c874608db7653b8b9abf9aae0b7b030b4b5d9f30029", "sourceMap": "718:4531:9:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", "deployedSourceMap": "718:4531:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;4453:794;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4628:21;4665:12;4697:1;4691:3;:7;4687:491;;;4795:10;4786:5;:19;;4782:145;;;4835:1;4825:11;;4782:145;;;4885:27;4894:5;4901:10;4885:8;:27::i;:::-;4875:37;;4782:145;4687:491;;;5040:8;5031:5;:17;;5027:141;;;5078:1;5068:11;;5027:141;;;5128:25;5137:8;5147:5;5128:8;:25::i;:::-;5118:35;;5027:141;4687:491;5227:13;5216:8;5220:3;5216;:8::i;:::-;5206:7;:18;:34;5187:53;;4453:794;;;;;;;;:::o;1246:125::-;1309:7;1340:1;1335;:6;;1328:14;;;;;;1363:1;1359;:5;1352:12;;1246:125;;;;:::o;3139:167::-;3185:7;3212:1;3208;:5;3204:96;;;3242:1;3241:2;;3229:15;;;;3204:96;3287:1;3275:14;;3139:167;;;;:::o", "source": "/*\n Copyright 2017-2018 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\npragma solidity ^0.4.24;\n\n\n/// @title Math function library with overflow protection inspired by Open Zeppelin\nlibrary MathLib {\n\n int256 constant INT256_MIN = int256((uint256(1) << 255));\n int256 constant INT256_MAX = int256(~((uint256(1) << 255)));\n\n function multiply(uint256 a, uint256 b) pure internal returns (uint256) {\n uint256 c = a * b;\n assert(a == 0 || c / a == b);\n return c;\n }\n\n function divideFractional(\n uint256 a,\n uint256 numerator,\n uint256 denominator\n ) pure internal returns (uint256)\n {\n return multiply(a, numerator) / denominator;\n }\n\n function subtract(uint256 a, uint256 b) pure internal returns (uint256) {\n assert(b <= a);\n return a - b;\n }\n\n function add(uint256 a, uint256 b) pure internal returns (uint256) {\n uint256 c = a + b;\n assert(c >= a);\n return c;\n }\n\n /// @notice safely adds two signed integers ensuring that no wrap occurs\n /// @param a value to add b to\n /// @param b value to add to a\n function add(int256 a, int256 b) pure internal returns (int256) {\n int256 c = a + b;\n if (!isSameSign(a, b)) { // result will always be smaller than current value, no wrap possible\n return c;\n }\n\n if (a >= 0) { // a is positive, b must be less than MAX - a to prevent wrap\n assert(b <= INT256_MAX - a);\n } else { // a is negative, b must be greater than MIN - a to prevent wrap\n assert(b >= INT256_MIN - a);\n }\n return c;\n }\n\n /// @notice safely subtracts two signed integers ensuring that no wrap occurs\n /// @param a value to subtract b from\n /// @param b value to subtract from a\n function subtract(int256 a, int256 b) pure internal returns (int256) {\n return add(a, -b); // use inverse add\n }\n\n /// @param a integer to determine sign of\n /// @return int8 sign of original value, either +1,0,-1\n function sign(int a) pure internal returns (int8) {\n if (a > 0) {\n return 1;\n } else if (a < 0) {\n return -1;\n }\n return 0;\n }\n\n /// @param a integer to compare to b\n /// @param b integer to compare to a\n /// @return bool true if a and b are the same sign (+/-)\n function isSameSign(int a, int b) pure internal returns (bool) {\n return ( a == b || a * b > 0);\n }\n\n /// @param a integer to determine absolute value of\n /// @return uint non signed representation of a\n function abs(int256 a) pure internal returns (uint256) {\n if (a < 0) {\n return uint(-a);\n } else {\n return uint(a);\n }\n }\n\n /// @notice finds the value closer to zero regardless of sign\n /// @param a integer to compare to b\n /// @param b integer to compare to a\n /// @return a if a is closer to zero than b - does not return abs value!\n function absMin(int256 a, int256 b) pure internal returns (int256) {\n return abs(a) < abs(b) ? a : b;\n }\n\n /// @notice finds the value further from zero regardless of sign\n /// @param a integer to compare to b\n /// @param b integer to compare to a\n /// @return a if a is further to zero than b - does not return abs value!\n function absMax(int256 a, int256 b) pure internal returns (int256) {\n return abs(a) >= abs(b) ? a : b;\n }\n\n /// @notice determines the amount of needed collateral for a given position (qty and price)\n /// @param priceFloor lowest price the contract is allowed to trade before expiration\n /// @param priceCap highest price the contract is allowed to trade before expiration\n /// @param qtyMultiplier multiplier for qty from base units\n /// @param qty signed integer corresponding to the traded quantity\n /// @param price of the trade\n function calculateNeededCollateral(\n uint priceFloor,\n uint priceCap,\n uint qtyMultiplier,\n int qty,\n uint price\n ) pure public returns (uint neededCollateral)\n {\n uint maxLoss;\n if (qty > 0) { // this qty is long, calculate max loss from entry price to floor\n if (price <= priceFloor) {\n maxLoss = 0;\n } else {\n maxLoss = subtract(price, priceFloor);\n }\n } else { // this qty is short, calculate max loss from entry price to ceiling;\n if (price >= priceCap) {\n maxLoss = 0;\n } else {\n maxLoss = subtract(priceCap, price);\n }\n }\n neededCollateral = maxLoss * abs(qty) * qtyMultiplier;\n }\n}\n", - "sourcePath": "/home/parallels/MARKETProtocol/contracts/libraries/MathLib.sol", + "sourcePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/MathLib.sol", "ast": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/MathLib.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/MathLib.sol", "exportedSymbols": { "MathLib": [ 2232 @@ -4811,7 +4811,7 @@ "src": "607:4643:9" }, "legacyAST": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/MathLib.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/MathLib.sol", "exportedSymbols": { "MathLib": [ 2232 @@ -9585,10 +9585,10 @@ "4": { "events": {}, "links": {}, - "address": "0x28b39df6f57adf357e01c47be86527d6f8c85833", - "transactionHash": "0xad46ad2b5b689bb5cc7f96455e47adb49026e5a648c83808bb74e58c6ce81d33" + "address": "0x254962dd15db2c9b57e612f1aaefb2ae5e33f107", + "transactionHash": "0x77067e49a26c459b80b1cfddd051086a7d398241366aade59ff282a6027df69c" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-09-07T17:31:18.146Z" + "updatedAt": "2018-09-07T18:28:49.217Z" } \ No newline at end of file diff --git a/build/contracts/Migrations.json b/build/contracts/Migrations.json index 1df7c94..8d23903 100644 --- a/build/contracts/Migrations.json +++ b/build/contracts/Migrations.json @@ -64,32 +64,32 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820a4913219bc6bc4ccb15d6f6ffc85171ed2647d002535fbd5bb256b8e90bf63f70029", - "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820a4913219bc6bc4ccb15d6f6ffc85171ed2647d002535fbd5bb256b8e90bf63f70029", - "sourceMap": "26:480:6:-;;;178:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;178:50:6;213:10;205:5;;:18;;;;;;;;;;;;;;;;;;26:480;;;;;;", - "deployedSourceMap": "26:480:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:165:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;74:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;74:36:6;;;;;;;;;;;;;;;;;;;;;;;50:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50:20:6;;;;;;;;;;;;;;;;;;;;;;;;;;;232:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;232:103:6;;;;;;;;;;;;;;;;;;;;;;;;;;339:165;401:19;161:5;;;;;;;;;;;147:19;;:10;:19;;;143:26;;;434:11;401:45;;452:8;:21;;;474:24;;452:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;452:47:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;452:47:6;;;;143:26;339:165;;:::o;74:36::-;;;;:::o;50:20::-;;;;;;;;;;;;;:::o;232:103::-;161:5;;;;;;;;;;;147:19;;:10;:19;;;143:26;;;321:9;294:24;:36;;;;143:26;232:103;:::o", - "source": "pragma solidity ^0.4.24;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", - "sourcePath": "/home/parallels/MARKETProtocol/contracts/Migrations.sol", + "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820cd3fa760d93a06308643d9054e3597f0011e0e43c3ef7ae43e427b5ceb3e97310029", + "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820cd3fa760d93a06308643d9054e3597f0011e0e43c3ef7ae43e427b5ceb3e97310029", + "sourceMap": "26:480:0:-;;;115:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;115:50:0;150:10;142:5;;:18;;;;;;;;;;;;;;;;;;26:480;;;;;;", + "deployedSourceMap": "26:480:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:165:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;74:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;74:36:0;;;;;;;;;;;;;;;;;;;;;;;50:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;232:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;232:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;339:165;401:19;215:5;;;;;;;;;;;201:19;;:10;:19;;;197:26;;;434:11;401:45;;452:8;:21;;;474:24;;452:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;452:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;452:47:0;;;;197:26;339:165;;:::o;74:36::-;;;;:::o;50:20::-;;;;;;;;;;;;;:::o;232:103::-;215:5;;;;;;;;;;;201:19;;:10;:19;;;197:26;;;321:9;294:24;:36;;;;197:26;232:103;:::o", + "source": "pragma solidity ^0.4.23;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", + "sourcePath": "/home/parallels/abis/contracts/Migrations.sol", "ast": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/Migrations.sol", + "absolutePath": "/home/parallels/abis/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 1789 + 56 ] }, - "id": 1790, + "id": 57, "nodeType": "SourceUnit", "nodes": [ { - "id": 1734, + "id": 1, "literals": [ "solidity", "^", "0.4", - ".24" + ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:6" + "src": "0:24:0" }, { "baseContracts": [], @@ -97,20 +97,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1789, + "id": 56, "linearizedBaseContracts": [ - 1789 + 56 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1736, + "id": 3, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1789, - "src": "50:20:6", + "scope": 56, + "src": "50:20:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -118,10 +118,10 @@ "typeString": "address" }, "typeName": { - "id": 1735, + "id": 2, "name": "address", "nodeType": "ElementaryTypeName", - "src": "50:7:6", + "src": "50:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -132,11 +132,11 @@ }, { "constant": false, - "id": 1738, + "id": 5, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "scope": 1789, - "src": "74:36:6", + "scope": 56, + "src": "74:36:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -144,10 +144,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1737, + "id": 4, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "74:4:6", + "src": "74:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -158,38 +158,49 @@ }, { "body": { - "id": 1746, + "id": 13, "nodeType": "Block", - "src": "137:37:6", + "src": "136:29:0", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1743, + "id": 11, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { + "argumentTypes": null, + "id": 8, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "142:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1740, + "id": 9, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5192, - "src": "147:3:6", + "referencedDeclaration": 71, + "src": "150:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1741, + "id": 10, "isConstant": false, "isLValue": false, "isPure": false, @@ -197,103 +208,85 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "147:10:6", + "src": "150:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1742, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "161:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "147:19:6", + "src": "142:18:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "falseBody": null, - "id": 1745, - "nodeType": "IfStatement", - "src": "143:26:6", - "trueBody": { - "id": 1744, - "nodeType": "PlaceholderStatement", - "src": "168:1:6" - } + "id": 12, + "nodeType": "ExpressionStatement", + "src": "142:18:0" } ] }, "documentation": null, - "id": 1747, - "name": "restricted", - "nodeType": "ModifierDefinition", + "id": 14, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", "parameters": { - "id": 1739, + "id": 6, "nodeType": "ParameterList", "parameters": [], - "src": "134:2:6" + "src": "126:2:0" }, - "src": "115:59:6", - "visibility": "internal" + "payable": false, + "returnParameters": { + "id": 7, + "nodeType": "ParameterList", + "parameters": [], + "src": "136:0:0" + }, + "scope": 56, + "src": "115:50:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" }, { "body": { - "id": 1755, + "id": 22, "nodeType": "Block", - "src": "199:29:6", + "src": "191:37:0", "statements": [ { - "expression": { + "condition": { "argumentTypes": null, - "id": 1753, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 19, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1750, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "205:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1751, + "id": 16, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5192, - "src": "213:3:6", + "referencedDeclaration": 71, + "src": "201:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1752, + "id": 17, "isConstant": false, "isLValue": false, "isPure": false, @@ -301,73 +294,80 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "213:10:6", + "src": "201:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "205:18:6", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 18, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "215:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "201:19:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1754, - "nodeType": "ExpressionStatement", - "src": "205:18:6" + "falseBody": null, + "id": 21, + "nodeType": "IfStatement", + "src": "197:26:0", + "trueBody": { + "id": 20, + "nodeType": "PlaceholderStatement", + "src": "222:1:0" + } } ] }, "documentation": null, - "id": 1756, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", + "id": 23, + "name": "restricted", + "nodeType": "ModifierDefinition", "parameters": { - "id": 1748, - "nodeType": "ParameterList", - "parameters": [], - "src": "189:2:6" - }, - "payable": false, - "returnParameters": { - "id": 1749, + "id": 15, "nodeType": "ParameterList", "parameters": [], - "src": "199:0:6" + "src": "188:2:0" }, - "scope": 1789, - "src": "178:50:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" + "src": "169:59:0", + "visibility": "internal" }, { "body": { - "id": 1767, + "id": 34, "nodeType": "Block", - "src": "288:47:6", + "src": "288:47:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 1765, + "id": 32, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1763, + "id": 30, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1738, - "src": "294:24:6", + "referencedDeclaration": 5, + "src": "294:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -377,68 +377,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1764, + "id": 31, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1758, - "src": "321:9:6", + "referencedDeclaration": 25, + "src": "321:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "294:36:6", + "src": "294:36:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1766, + "id": 33, "nodeType": "ExpressionStatement", - "src": "294:36:6" + "src": "294:36:0" } ] }, "documentation": null, - "id": 1768, + "id": 35, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1761, + "id": 28, "modifierName": { "argumentTypes": null, - "id": 1760, + "id": 27, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1747, - "src": "277:10:6", + "referencedDeclaration": 23, + "src": "277:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "277:10:6" + "src": "277:10:0" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { - "id": 1759, + "id": 26, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1758, + "id": 25, "name": "completed", "nodeType": "VariableDeclaration", - "scope": 1768, - "src": "254:14:6", + "scope": 35, + "src": "254:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -446,10 +446,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1757, + "id": 24, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "254:4:6", + "src": "254:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -459,54 +459,54 @@ "visibility": "internal" } ], - "src": "253:16:6" + "src": "253:16:0" }, "payable": false, "returnParameters": { - "id": 1762, + "id": 29, "nodeType": "ParameterList", "parameters": [], - "src": "288:0:6" + "src": "288:0:0" }, - "scope": 1789, - "src": "232:103:6", + "scope": 56, + "src": "232:103:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1787, + "id": 54, "nodeType": "Block", - "src": "395:109:6", + "src": "395:109:0", "statements": [ { "assignments": [ - 1776 + 43 ], "declarations": [ { "constant": false, - "id": 1776, + "id": 43, "name": "upgraded", "nodeType": "VariableDeclaration", - "scope": 1788, - "src": "401:19:6", + "scope": 55, + "src": "401:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1789", + "typeIdentifier": "t_contract$_Migrations_$56", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, - "id": 1775, + "id": 42, "name": "Migrations", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1789, - "src": "401:10:6", + "referencedDeclaration": 56, + "src": "401:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1789", + "typeIdentifier": "t_contract$_Migrations_$56", "typeString": "contract Migrations" } }, @@ -514,18 +514,18 @@ "visibility": "internal" } ], - "id": 1780, + "id": 47, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1778, + "id": 45, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1770, - "src": "434:11:6", + "referencedDeclaration": 37, + "src": "434:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -539,18 +539,18 @@ "typeString": "address" } ], - "id": 1777, + "id": 44, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1789, - "src": "423:10:6", + "referencedDeclaration": 56, + "src": "423:10:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$1789_$", + "typeIdentifier": "t_type$_t_contract$_Migrations_$56_$", "typeString": "type(contract Migrations)" } }, - "id": 1779, + "id": 46, "isConstant": false, "isLValue": false, "isPure": false, @@ -558,14 +558,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "423:23:6", + "src": "423:23:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1789", + "typeIdentifier": "t_contract$_Migrations_$56", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", - "src": "401:45:6" + "src": "401:45:0" }, { "expression": { @@ -573,12 +573,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1784, + "id": 51, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1738, - "src": "474:24:6", + "referencedDeclaration": 5, + "src": "474:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -594,32 +594,32 @@ ], "expression": { "argumentTypes": null, - "id": 1781, + "id": 48, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1776, - "src": "452:8:6", + "referencedDeclaration": 43, + "src": "452:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1789", + "typeIdentifier": "t_contract$_Migrations_$56", "typeString": "contract Migrations" } }, - "id": 1783, + "id": 50, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", - "referencedDeclaration": 1768, - "src": "452:21:6", + "referencedDeclaration": 35, + "src": "452:21:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 1785, + "id": 52, "isConstant": false, "isLValue": false, "isPure": false, @@ -627,57 +627,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "452:47:6", + "src": "452:47:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1786, + "id": 53, "nodeType": "ExpressionStatement", - "src": "452:47:6" + "src": "452:47:0" } ] }, "documentation": null, - "id": 1788, + "id": 55, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1773, + "id": 40, "modifierName": { "argumentTypes": null, - "id": 1772, + "id": 39, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1747, - "src": "384:10:6", + "referencedDeclaration": 23, + "src": "384:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "384:10:6" + "src": "384:10:0" } ], "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 1771, + "id": 38, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1770, + "id": 37, "name": "new_address", "nodeType": "VariableDeclaration", - "scope": 1788, - "src": "356:19:6", + "scope": 55, + "src": "356:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -685,10 +685,10 @@ "typeString": "address" }, "typeName": { - "id": 1769, + "id": 36, "name": "address", "nodeType": "ElementaryTypeName", - "src": "356:7:6", + "src": "356:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -698,48 +698,48 @@ "visibility": "internal" } ], - "src": "355:21:6" + "src": "355:21:0" }, "payable": false, "returnParameters": { - "id": 1774, + "id": 41, "nodeType": "ParameterList", "parameters": [], - "src": "395:0:6" + "src": "395:0:0" }, - "scope": 1789, - "src": "339:165:6", + "scope": 56, + "src": "339:165:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1790, - "src": "26:480:6" + "scope": 57, + "src": "26:480:0" } ], - "src": "0:507:6" + "src": "0:507:0" }, "legacyAST": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/Migrations.sol", + "absolutePath": "/home/parallels/abis/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 1789 + 56 ] }, - "id": 1790, + "id": 57, "nodeType": "SourceUnit", "nodes": [ { - "id": 1734, + "id": 1, "literals": [ "solidity", "^", "0.4", - ".24" + ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:6" + "src": "0:24:0" }, { "baseContracts": [], @@ -747,20 +747,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1789, + "id": 56, "linearizedBaseContracts": [ - 1789 + 56 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1736, + "id": 3, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1789, - "src": "50:20:6", + "scope": 56, + "src": "50:20:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -768,10 +768,10 @@ "typeString": "address" }, "typeName": { - "id": 1735, + "id": 2, "name": "address", "nodeType": "ElementaryTypeName", - "src": "50:7:6", + "src": "50:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -782,11 +782,11 @@ }, { "constant": false, - "id": 1738, + "id": 5, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "scope": 1789, - "src": "74:36:6", + "scope": 56, + "src": "74:36:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -794,10 +794,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1737, + "id": 4, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "74:4:6", + "src": "74:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -808,38 +808,49 @@ }, { "body": { - "id": 1746, + "id": 13, "nodeType": "Block", - "src": "137:37:6", + "src": "136:29:0", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1743, + "id": 11, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { + "argumentTypes": null, + "id": 8, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "142:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1740, + "id": 9, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5192, - "src": "147:3:6", + "referencedDeclaration": 71, + "src": "150:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1741, + "id": 10, "isConstant": false, "isLValue": false, "isPure": false, @@ -847,103 +858,85 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "147:10:6", + "src": "150:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1742, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "161:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "147:19:6", + "src": "142:18:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "falseBody": null, - "id": 1745, - "nodeType": "IfStatement", - "src": "143:26:6", - "trueBody": { - "id": 1744, - "nodeType": "PlaceholderStatement", - "src": "168:1:6" - } + "id": 12, + "nodeType": "ExpressionStatement", + "src": "142:18:0" } ] }, "documentation": null, - "id": 1747, - "name": "restricted", - "nodeType": "ModifierDefinition", + "id": 14, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", "parameters": { - "id": 1739, + "id": 6, "nodeType": "ParameterList", "parameters": [], - "src": "134:2:6" + "src": "126:2:0" }, - "src": "115:59:6", - "visibility": "internal" + "payable": false, + "returnParameters": { + "id": 7, + "nodeType": "ParameterList", + "parameters": [], + "src": "136:0:0" + }, + "scope": 56, + "src": "115:50:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" }, { "body": { - "id": 1755, + "id": 22, "nodeType": "Block", - "src": "199:29:6", + "src": "191:37:0", "statements": [ { - "expression": { + "condition": { "argumentTypes": null, - "id": 1753, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 19, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1750, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "205:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1751, + "id": 16, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5192, - "src": "213:3:6", + "referencedDeclaration": 71, + "src": "201:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1752, + "id": 17, "isConstant": false, "isLValue": false, "isPure": false, @@ -951,73 +944,80 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "213:10:6", + "src": "201:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "205:18:6", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 18, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "215:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "201:19:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1754, - "nodeType": "ExpressionStatement", - "src": "205:18:6" + "falseBody": null, + "id": 21, + "nodeType": "IfStatement", + "src": "197:26:0", + "trueBody": { + "id": 20, + "nodeType": "PlaceholderStatement", + "src": "222:1:0" + } } ] }, "documentation": null, - "id": 1756, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", + "id": 23, + "name": "restricted", + "nodeType": "ModifierDefinition", "parameters": { - "id": 1748, - "nodeType": "ParameterList", - "parameters": [], - "src": "189:2:6" - }, - "payable": false, - "returnParameters": { - "id": 1749, + "id": 15, "nodeType": "ParameterList", "parameters": [], - "src": "199:0:6" + "src": "188:2:0" }, - "scope": 1789, - "src": "178:50:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" + "src": "169:59:0", + "visibility": "internal" }, { "body": { - "id": 1767, + "id": 34, "nodeType": "Block", - "src": "288:47:6", + "src": "288:47:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 1765, + "id": 32, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1763, + "id": 30, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1738, - "src": "294:24:6", + "referencedDeclaration": 5, + "src": "294:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1027,68 +1027,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1764, + "id": 31, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1758, - "src": "321:9:6", + "referencedDeclaration": 25, + "src": "321:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "294:36:6", + "src": "294:36:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1766, + "id": 33, "nodeType": "ExpressionStatement", - "src": "294:36:6" + "src": "294:36:0" } ] }, "documentation": null, - "id": 1768, + "id": 35, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1761, + "id": 28, "modifierName": { "argumentTypes": null, - "id": 1760, + "id": 27, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1747, - "src": "277:10:6", + "referencedDeclaration": 23, + "src": "277:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "277:10:6" + "src": "277:10:0" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { - "id": 1759, + "id": 26, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1758, + "id": 25, "name": "completed", "nodeType": "VariableDeclaration", - "scope": 1768, - "src": "254:14:6", + "scope": 35, + "src": "254:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1096,10 +1096,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1757, + "id": 24, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "254:4:6", + "src": "254:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1109,54 +1109,54 @@ "visibility": "internal" } ], - "src": "253:16:6" + "src": "253:16:0" }, "payable": false, "returnParameters": { - "id": 1762, + "id": 29, "nodeType": "ParameterList", "parameters": [], - "src": "288:0:6" + "src": "288:0:0" }, - "scope": 1789, - "src": "232:103:6", + "scope": 56, + "src": "232:103:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1787, + "id": 54, "nodeType": "Block", - "src": "395:109:6", + "src": "395:109:0", "statements": [ { "assignments": [ - 1776 + 43 ], "declarations": [ { "constant": false, - "id": 1776, + "id": 43, "name": "upgraded", "nodeType": "VariableDeclaration", - "scope": 1788, - "src": "401:19:6", + "scope": 55, + "src": "401:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1789", + "typeIdentifier": "t_contract$_Migrations_$56", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, - "id": 1775, + "id": 42, "name": "Migrations", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1789, - "src": "401:10:6", + "referencedDeclaration": 56, + "src": "401:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1789", + "typeIdentifier": "t_contract$_Migrations_$56", "typeString": "contract Migrations" } }, @@ -1164,18 +1164,18 @@ "visibility": "internal" } ], - "id": 1780, + "id": 47, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1778, + "id": 45, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1770, - "src": "434:11:6", + "referencedDeclaration": 37, + "src": "434:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1189,18 +1189,18 @@ "typeString": "address" } ], - "id": 1777, + "id": 44, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1789, - "src": "423:10:6", + "referencedDeclaration": 56, + "src": "423:10:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$1789_$", + "typeIdentifier": "t_type$_t_contract$_Migrations_$56_$", "typeString": "type(contract Migrations)" } }, - "id": 1779, + "id": 46, "isConstant": false, "isLValue": false, "isPure": false, @@ -1208,14 +1208,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "423:23:6", + "src": "423:23:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1789", + "typeIdentifier": "t_contract$_Migrations_$56", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", - "src": "401:45:6" + "src": "401:45:0" }, { "expression": { @@ -1223,12 +1223,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1784, + "id": 51, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1738, - "src": "474:24:6", + "referencedDeclaration": 5, + "src": "474:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1244,32 +1244,32 @@ ], "expression": { "argumentTypes": null, - "id": 1781, + "id": 48, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1776, - "src": "452:8:6", + "referencedDeclaration": 43, + "src": "452:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1789", + "typeIdentifier": "t_contract$_Migrations_$56", "typeString": "contract Migrations" } }, - "id": 1783, + "id": 50, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", - "referencedDeclaration": 1768, - "src": "452:21:6", + "referencedDeclaration": 35, + "src": "452:21:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 1785, + "id": 52, "isConstant": false, "isLValue": false, "isPure": false, @@ -1277,57 +1277,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "452:47:6", + "src": "452:47:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1786, + "id": 53, "nodeType": "ExpressionStatement", - "src": "452:47:6" + "src": "452:47:0" } ] }, "documentation": null, - "id": 1788, + "id": 55, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1773, + "id": 40, "modifierName": { "argumentTypes": null, - "id": 1772, + "id": 39, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1747, - "src": "384:10:6", + "referencedDeclaration": 23, + "src": "384:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "384:10:6" + "src": "384:10:0" } ], "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 1771, + "id": 38, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1770, + "id": 37, "name": "new_address", "nodeType": "VariableDeclaration", - "scope": 1788, - "src": "356:19:6", + "scope": 55, + "src": "356:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1335,10 +1335,10 @@ "typeString": "address" }, "typeName": { - "id": 1769, + "id": 36, "name": "address", "nodeType": "ElementaryTypeName", - "src": "356:7:6", + "src": "356:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1348,27 +1348,27 @@ "visibility": "internal" } ], - "src": "355:21:6" + "src": "355:21:0" }, "payable": false, "returnParameters": { - "id": 1774, + "id": 41, "nodeType": "ParameterList", "parameters": [], - "src": "395:0:6" + "src": "395:0:0" }, - "scope": 1789, - "src": "339:165:6", + "scope": 56, + "src": "339:165:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1790, - "src": "26:480:6" + "scope": 57, + "src": "26:480:0" } ], - "src": "0:507:6" + "src": "0:507:0" }, "compiler": { "name": "solc", @@ -1378,10 +1378,10 @@ "4": { "events": {}, "links": {}, - "address": "0x76fe6f32279defd7e64ea53fa9b68d2c18dab47d", - "transactionHash": "0xb109b1e6ffbf2839244035f8aa2890f2d4e5c9d89988b476d6cfa06863bd9387" + "address": "0x5b04afb217cd8b49d63c93c5718ec0ba949f36b1", + "transactionHash": "0x016a5a953642e86f3410f905ea3a09880b1dd8afcbc94710d00e03f48e175a59" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-09-07T17:31:18.228Z" + "updatedAt": "2018-09-07T18:28:49.241Z" } \ No newline at end of file diff --git a/build/contracts/OraclizeQueryTest.json b/build/contracts/OraclizeQueryTest.json index 0a4aa69..7213493 100644 --- a/build/contracts/OraclizeQueryTest.json +++ b/build/contracts/OraclizeQueryTest.json @@ -4232,10 +4232,10 @@ } }, "links": {}, - "address": "0x18de1cf34877de1c2cc5d544f26ef0dbe1e59eb9", - "transactionHash": "0x08a7b1e9da5981ebe266bcc9d62536ce1803151491697c95415ea3e8a706d8f1" + "address": "0xfb4272316da77b63d8c70d8635849473fe24c011", + "transactionHash": "0xe5dc97aed47f22c06a9bcee6f3510642e521875430f2c43ffdb407ca618649bd" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-07-27T19:00:06.639Z" + "updatedAt": "2018-09-07T18:28:49.222Z" } \ No newline at end of file diff --git a/build/contracts/OrderLib.json b/build/contracts/OrderLib.json index c35c57d..0b7b3c3 100644 --- a/build/contracts/OrderLib.json +++ b/build/contracts/OrderLib.json @@ -68,14 +68,14 @@ "type": "function" } ], - "bytecode": "0x61059a610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f3007300000000000000000000000000000000000000003014608060405260043610610063576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806336a716da146100685780638163681e14610122575b600080fd5b610104600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080606001906003806020026040519081016040528092919082600360200280828437820191505050505091929192908060a00190600580602002604051908101604052809291908260056020028082843782019150505050509192919290803590602001909291905050506101a7565b60405180826000191660001916815260200191505060405180910390f35b61018d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803560ff16906020019092919080356000191690602001909291908035600019169060200190929190505050610401565b604051808215151515815260200191505060405180910390f35b6000848460006003811015156101b957fe5b60200201518560016003811015156101cd57fe5b60200201518660026003811015156101e157fe5b60200201518660006005811015156101f557fe5b602002015187600160058110151561020957fe5b602002015188600260058110151561021d57fe5b602002015189600360058110151561023157fe5b60200201518a600460058110151561024557fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156103ca57805182526020820191506020810190506020830392506103a5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600060018560405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561048a5780518252602082019150602081019050602083039250610465565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020858585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561052b573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16149050959450505050505600a165627a7a723058203e89d8b8c18246436cca71b0d4b005cc0aa9fecf73ca69d879de033b768dc97b0029", - "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610610063576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806336a716da146100685780638163681e14610122575b600080fd5b610104600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080606001906003806020026040519081016040528092919082600360200280828437820191505050505091929192908060a00190600580602002604051908101604052809291908260056020028082843782019150505050509192919290803590602001909291905050506101a7565b60405180826000191660001916815260200191505060405180910390f35b61018d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803560ff16906020019092919080356000191690602001909291908035600019169060200190929190505050610401565b604051808215151515815260200191505060405180910390f35b6000848460006003811015156101b957fe5b60200201518560016003811015156101cd57fe5b60200201518660026003811015156101e157fe5b60200201518660006005811015156101f557fe5b602002015187600160058110151561020957fe5b602002015188600260058110151561021d57fe5b602002015189600360058110151561023157fe5b60200201518a600460058110151561024557fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156103ca57805182526020820191506020810190506020830392506103a5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600060018560405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561048a5780518252602082019150602081019050602083039250610465565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020858585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561052b573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16149050959450505050505600a165627a7a723058203e89d8b8c18246436cca71b0d4b005cc0aa9fecf73ca69d879de033b768dc97b0029", + "bytecode": "0x61059a610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f3007300000000000000000000000000000000000000003014608060405260043610610063576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806336a716da146100685780638163681e14610122575b600080fd5b610104600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080606001906003806020026040519081016040528092919082600360200280828437820191505050505091929192908060a00190600580602002604051908101604052809291908260056020028082843782019150505050509192919290803590602001909291905050506101a7565b60405180826000191660001916815260200191505060405180910390f35b61018d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803560ff16906020019092919080356000191690602001909291908035600019169060200190929190505050610401565b604051808215151515815260200191505060405180910390f35b6000848460006003811015156101b957fe5b60200201518560016003811015156101cd57fe5b60200201518660026003811015156101e157fe5b60200201518660006005811015156101f557fe5b602002015187600160058110151561020957fe5b602002015188600260058110151561021d57fe5b602002015189600360058110151561023157fe5b60200201518a600460058110151561024557fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156103ca57805182526020820191506020810190506020830392506103a5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600060018560405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561048a5780518252602082019150602081019050602083039250610465565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020858585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561052b573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16149050959450505050505600a165627a7a723058206bc9a005fbe3ceb4e0105315103fc4d6402a5543548c0d686a8141a21d330c210029", + "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610610063576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806336a716da146100685780638163681e14610122575b600080fd5b610104600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080606001906003806020026040519081016040528092919082600360200280828437820191505050505091929192908060a00190600580602002604051908101604052809291908260056020028082843782019150505050509192919290803590602001909291905050506101a7565b60405180826000191660001916815260200191505060405180910390f35b61018d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803560ff16906020019092919080356000191690602001909291908035600019169060200190929190505050610401565b604051808215151515815260200191505060405180910390f35b6000848460006003811015156101b957fe5b60200201518560016003811015156101cd57fe5b60200201518660026003811015156101e157fe5b60200201518660006005811015156101f557fe5b602002015187600160058110151561020957fe5b602002015188600260058110151561021d57fe5b602002015189600360058110151561023157fe5b60200201518a600460058110151561024557fe5b60200201518a604051602001808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018681526020018581526020018481526020018381526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156103ca57805182526020820191506020810190506020830392506103a5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b600060018560405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561048a5780518252602082019150602081019050602083039250610465565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020858585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561052b573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16149050959450505050505600a165627a7a723058206bc9a005fbe3ceb4e0105315103fc4d6402a5543548c0d686a8141a21d330c210029", "sourceMap": "730:4673:10:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", "deployedSourceMap": "730:4673:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2115:643;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3017:359;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2115:643;2294:7;2381:15;2414:14;2429:1;2414:17;;;;;;;;;;;;;2449:14;2464:1;2449:17;;;;;;;;;;;;;2484:14;2499:1;2484:17;;;;;;;;;;;;;2519:19;2539:1;2519:22;;;;;;;;;;;;;2559:19;2579:1;2559:22;;;;;;;;;;;;;2599:19;2619:1;2599:22;;;;;;;;;;;;;2639:19;2659:1;2639:22;;;;;;;;;;;;;2679:19;2699:1;2679:22;;;;;;;;;;;;;2719:8;2347:394;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2347:394:10;;;2324:427;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;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;;;2324:427:10;;;;;;;;;;;;;;;;2317:434;;2115:643;;;;;;:::o;3017:359::-;3178:4;3222:147;3308:4;3255:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3255:58:10;;;3245:69;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;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;;;3245:69:10;;;;;;;;;;;;;;;;3328:1;3343;3358;3222:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3222:147:10;;;;;;;;3205:164;;:13;:164;;;3198:171;;3017:359;;;;;;;:::o", "source": "/*\n Copyright 2017-2018 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\npragma solidity ^0.4.24;\n\nimport \"./MathLib.sol\";\n\n\n/// @title OrderLib\n/// @author Phil Elsasser \nlibrary OrderLib {\n using MathLib for int;\n\n struct OrderMappings {\n mapping (bytes32 => int) filledOrderQty;\n mapping (bytes32 => int) cancelledOrderQty;\n }\n\n struct Order {\n address maker;\n address taker;\n address feeRecipient;\n uint makerFee;\n uint takerFee;\n uint price;\n uint expirationTimeStamp;\n int qty;\n bytes32 orderHash;\n }\n\n /*\n // PUBLIC METHODS\n */\n\n /// @notice returns the qty that is no longer available to trade for a given order\n /// @param orderHash hash of order to find filled and cancelled qty\n /// @return int quantity that is no longer able to filled from the supplied order hash\n function getQtyFilledOrCancelledFromOrder(\n OrderMappings storage self,\n bytes32 orderHash\n ) internal view returns (int)\n {\n return self.filledOrderQty[orderHash].add(self.cancelledOrderQty[orderHash]);\n }\n\n /// @notice creates the hash for the given order parameters.\n /// @param contractAddress address of the calling contract, orders are unique to each contract\n /// @param orderAddresses array of 3 address. maker, taker, and feeRecipient\n /// @param unsignedOrderValues array of 5 unsigned integers. makerFee, takerFee, price, expirationTimeStamp and salt\n /// @param orderQty signed qty of the original order.\n function createOrderHash(\n address contractAddress,\n address[3] orderAddresses,\n uint[5] unsignedOrderValues,\n int orderQty\n ) public pure returns (bytes32)\n {\n return keccak256(\n abi.encodePacked(\n contractAddress,\n orderAddresses[0],\n orderAddresses[1],\n orderAddresses[2],\n unsignedOrderValues[0],\n unsignedOrderValues[1],\n unsignedOrderValues[2],\n unsignedOrderValues[3],\n unsignedOrderValues[4],\n orderQty\n )\n );\n }\n\n /// @notice confirms hash originated from signer\n /// @param signerAddress - address of order originator\n /// @param hash - original order hash\n /// @param v order signature\n /// @param r order signature\n /// @param s order signature\n function isValidSignature(\n address signerAddress,\n bytes32 hash,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) public pure returns (bool)\n {\n return signerAddress == ecrecover(\n keccak256(abi.encodePacked(\"\\x19Ethereum Signed Message:\\n32\", hash)),\n v,\n r,\n s\n );\n }\n\n /*\n // INTERNAL METHODS\n */\n\n /// @dev factory for orders to be created with needed hash.\n /// @param contractAddress address of the calling contract, orders are unique to each contract\n /// @param orderAddresses array of 3 address. maker, taker, and feeRecipient\n /// @param unsignedOrderValues array of 5 unsigned integers. makerFee, takerFee, price, expirationTimeStamp and salt\n /// @param orderQty signed qty of the original order.\n function createOrder(\n address contractAddress,\n address[3] orderAddresses,\n uint[5] unsignedOrderValues,\n int orderQty\n ) internal pure returns (Order order)\n {\n order.maker = orderAddresses[0];\n order.taker = orderAddresses[1];\n order.feeRecipient = orderAddresses[2];\n order.makerFee = unsignedOrderValues[0];\n order.takerFee = unsignedOrderValues[1];\n order.price = unsignedOrderValues[2];\n order.expirationTimeStamp = unsignedOrderValues[3];\n order.qty = orderQty;\n order.orderHash = createOrderHash(\n contractAddress,\n orderAddresses,\n unsignedOrderValues,\n orderQty\n );\n return order;\n }\n\n // @dev increment our filled order mappings to avoid overfill\n // @param self storage struct\n // @param orderHash hashed value for order\n // @param filledQty amount to add to our mapping\n function addFilledQtyToOrder(OrderMappings storage self, bytes32 orderHash, int filledQty) internal {\n self.filledOrderQty[orderHash] = self.filledOrderQty[orderHash].add(filledQty);\n }\n\n // @dev increment our cancelled order mappings\n // @param self storage struct\n // @param orderHash hashed value for order\n // @param cancelledQty amount to add to our mapping\n function addCancelledQtyToOrder(OrderMappings storage self, bytes32 orderHash, int cancelledQty) internal {\n self.cancelledOrderQty[orderHash] = self.cancelledOrderQty[orderHash].add(cancelledQty);\n }\n}\n\n", - "sourcePath": "/home/parallels/MARKETProtocol/contracts/libraries/OrderLib.sol", + "sourcePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/OrderLib.sol", "ast": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/OrderLib.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/OrderLib.sol", "exportedSymbols": { "OrderLib": [ 2510 @@ -96,7 +96,7 @@ "src": "607:24:10" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/MathLib.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/MathLib.sol", "file": "./MathLib.sol", "id": 2235, "nodeType": "ImportDirective", @@ -3663,7 +3663,7 @@ "src": "607:4798:10" }, "legacyAST": { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/OrderLib.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/OrderLib.sol", "exportedSymbols": { "OrderLib": [ 2510 @@ -3684,7 +3684,7 @@ "src": "607:24:10" }, { - "absolutePath": "/home/parallels/MARKETProtocol/contracts/libraries/MathLib.sol", + "absolutePath": "/home/pelsasser/MARKETProtocol/contracts/libraries/MathLib.sol", "file": "./MathLib.sol", "id": 2235, "nodeType": "ImportDirective", @@ -7258,10 +7258,10 @@ "4": { "events": {}, "links": {}, - "address": "0x5374c9b5d0d60e7f58063e02e6fd905ff94c4fb6", - "transactionHash": "0x33c4df150277507e471f22ae7d3b02455b27bdc6a19dfcbbdaf7b1d63c3a746d" + "address": "0x5cfce3c76fa3528b87f27149c341b2add6904ea7", + "transactionHash": "0x3ed17e9dba624cfb6603d9038c08f45eb58bdad8650ee41975e5a0271c57d20f" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-09-07T17:31:18.165Z" + "updatedAt": "2018-09-07T18:28:49.227Z" } \ No newline at end of file From a5803d711a6031f23879d9b39a9cebfdd819bec7 Mon Sep 17 00:00:00 2001 From: Phil Elsasser Date: Fri, 7 Sep 2018 12:36:01 -0600 Subject: [PATCH 4/4] version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 71c34a9..23c8846 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@marketprotocol/abis", - "version": "0.0.2", + "version": "0.0.3", "description": "MARKET Protocol truffle artifacts and ABIs", "main": "truffle-config.js", "scripts": {